星座:

public static String getStar(Date date)
{
Calendar cal = Calendar.getInstance();
cal.setTime(date);
int month = cal.get(Calendar.MONTH) + 1;
int day = cal.get(Calendar.DAY_OF_MONTH);
String star = "";
if (month == 1 && day >= 20 || month == 2 && day <= 18)
{
star = "水瓶座";
}
if (month == 2 && day >= 19 || month == 3 && day <= 20)
{
star = "双鱼座";
}
if (month == 3 && day >= 21 || month == 4 && day <= 19)
{
star = "白羊座";
}
if (month == 4 && day >= 20 || month == 5 && day <= 20)
{
star = "金牛座";
}
if (month == 5 && day >= 21 || month == 6 && day <= 21)
{
star = "双子座";
}
if (month == 6 && day >= 22 || month == 7 && day <= 22)
{
star = "巨蟹座";
}
if (month == 7 && day >= 23 || month == 8 && day <= 22)
{
star = "狮子座";
}
if (month == 8 && day >= 23 || month == 9 && day <= 22)
{
star = "处女座";
}
if (month == 9 && day >= 23 || month == 10 && day <= 22)
{
star = "天秤座";
}
if (month == 10 && day >= 23 || month == 11 && day <= 21)
{
star = "天蝎座";
}
if (month == 11 && day >= 22 || month == 12 && day <= 21)
{
star = "射手座";
}
if (month == 12 && day >= 22 || month == 1 && day <= 19)
{
star = "摩羯座";
}
return star;
}

年龄:

public static int getAge(Date birthday)
{
Date date = new Date();
long day = (date.getTime() - birthday.getTime()) / (24 * 60 * 60 * 1000) + 1;
int age = (int)(day / 365);
if(age<=0){
age=1;
}
return age;
}

判断时间是否是现在之前:

public static boolean isTimeBefore(Date date)
{
Calendar calDateA = Calendar.getInstance();
calDateA.setTime(date);
Calendar calDateB = Calendar.getInstance();
calDateB.setTime(new Date());
if (calDateA.get(Calendar.HOUR) > calDateB.get(Calendar.HOUR))
return true;
if (calDateA.get(Calendar.HOUR) == calDateB.get(Calendar.HOUR))
{
if (calDateA.get(Calendar.MINUTE) > calDateB.get(Calendar.MINUTE))
return true;
if (calDateA.get(Calendar.MINUTE) == calDateB.get(Calendar.MINUTE))
if (calDateA.get(Calendar.SECOND) > calDateB.get(Calendar.SECOND))
return true;
if (calDateA.get(Calendar.SECOND) == calDateB.get(Calendar.SECOND))
if (calDateA.get(Calendar.MILLISECOND) > calDateB.get(Calendar.MILLISECOND))
return true;
}
return false;
}

是否是今天:

public static boolean isToday(Date timestamp)
{
Calendar calDateA = Calendar.getInstance();
calDateA.setTime(timestamp);
Calendar calDateB = Calendar.getInstance();
calDateB.setTime(new Date());
return calDateA.get(Calendar.YEAR) == calDateB.get(Calendar.YEAR) && calDateA.get(Calendar.MONTH) == calDateB.get(Calendar.MONTH)
&& calDateA.get(Calendar.DAY_OF_MONTH) == calDateB.get(Calendar.DAY_OF_MONTH);
}

是否是这个月:

public static boolean isThisMonth(Date d1)
{
Date d2 = new Date();
Calendar cal1 = Calendar.getInstance();
Calendar cal2 = Calendar.getInstance();
cal1.setTime(d1);
cal2.setTime(d2);
int subYear = cal1.get(Calendar.YEAR) - cal2.get(Calendar.YEAR);
if (subYear == 0)
{
if (cal1.get(Calendar.MONTH) == cal2.get(Calendar.MONTH))
return true;
}
return false;
}

是否是这周:

public static boolean isThisWeek(Date d1)
{
Date d2 = new Date();
Calendar cal1 = Calendar.getInstance();
Calendar cal2 = Calendar.getInstance();
cal1.setTime(d1);
cal2.setTime(d2);
int subYear = cal1.get(Calendar.YEAR) - cal2.get(Calendar.YEAR);
if (subYear == 0)
{
if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR))
return true;
}
else if (subYear == 1 && cal2.get(Calendar.MONTH) == 11)
{
if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR))
return true;
}
else if (subYear == -1 && cal1.get(Calendar.MONTH) == 11)
{
if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR))
return true;
}
return false;
}

计算时间过去多久:

public static String getFormDate(Date date)
{
Calendar nowCal = Calendar.getInstance();
nowCal.setTime(new Date());
Calendar dateCal = Calendar.getInstance();
dateCal.setTime(date);
if (nowCal.get(Calendar.YEAR) != dateCal.get(Calendar.YEAR))
{
SimpleDateFormat df = new SimpleDateFormat("yy-MM-dd");
return df.format(date);
}
int nowDay = nowCal.get(Calendar.DAY_OF_YEAR);
int dateDay = dateCal.get(Calendar.DAY_OF_YEAR);
if (nowDay != dateDay)
{
int days = nowDay - dateDay;
String str = null;
switch (days)
{
case 1:
str = "昨天";
break;
case 2:
str = "前天";
break;
case 3:
str = "3天前";
break;
case 4:
str = "4天前";
break;
case 5:
str = "5天前";
break;
default:
SimpleDateFormat df = new SimpleDateFormat("MM-dd");
str = df.format(date);
break;
}
return str;
}
SimpleDateFormat df = new SimpleDateFormat("HH:mm");
long l = new Date().getTime() - date.getTime();
int hour = new Long(l / (60 * 60 * 1000)).intValue();
String str="";
switch (hour)
{
case 0:
long min = ((l / (60 * 1000)));
if(min>5)
str=min+"分钟前";
else
str="刚刚";
break;
case 1:
str="1小时前";
break;
case 2:
str="2小时前";
break;
case 3:
str="3小时前";
break;
case 4:
str="4小时前";
break;
case 5:
str="5小时前";
break;
default:
str=df.format(date);
break;
}
return str;
}

java星座、年龄、日期等的更多相关文章

  1. 计算机程序的思维逻辑 (95) - Java 8的日期和时间API

    ​本节继续探讨Java 8的新特性,主要是介绍Java 8对日期和时间API的增强,关于日期和时间,我们在之前已经介绍过两节了,32节介绍了Java 1.8以前的日期和时间API,主要的类是Date和 ...

  2. Java编程的逻辑 (95) - Java 8的日期和时间API

    ​本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http: ...

  3. Java Hour 50 日期类型

    Plan List: 1 Java 中的日期类型 2 mysql 相关 3 java code style 鉴于本问题太过普通,所以参考文章满大街都是,因此本文内容基本为转载和验证. java.sql ...

  4. [原创]java WEB学习笔记81:Hibernate学习之路--- 对象关系映射文件(.hbm.xml):hibernate-mapping 节点,class节点,id节点(主键生成策略),property节点,在hibernate 中 java类型 与sql类型之间的对应关系,Java 时间和日期类型的映射,Java 大对象类型 的 映射 (了解),映射组成关系

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  5. JAVA格式化时间日期

    JAVA格式化时间日期 import java.util.Date; import java.text.DateFormat; /** * 格式化时间类 * DateFormat.FULL = 0 * ...

  6. Delphi与Java中的日期互换

    在最近做的一个项目中用到了Java和Delphi,发现它们不能正确读取对方的日期类型,如在Java中写入一个值为“2007-12-1”的日期值,通过Delphi读取却不是这个值了.通过查阅资料,发现两 ...

  7. Java中的日期操作

    在日志中常用的记录当前时间及程序运行时长的方法: public void inject(Path urlDir) throws Exception { SimpleDateFormat sdf = n ...

  8. Java 8 时间日期库的20个使用示例

    java 8是如何处理时间及日期的 有人问我学习一个新库的最佳途径是什么?我的回答是,就是在实际项目中那样去使用它.在一个真实的项目中会有各种各样的需求,这会促使开发人员去探索和研究这个新库.简言之, ...

  9. Java SimpleDateFormat处理日期与字符串的转换

    1.为什么要使用SimpleDateFormat? 在Java中,如果我们想获取当前时间,一般会使用Date类的无参构造函数,如下所示,我们获取到当前时间并输出: import java.util.D ...

  10. 填坑:Java 中的日期转换

    我们之前讨论过时间,在Java 中有一些方法会出现横线?比如Date 过期方法. 参考文章:知识点:java一些方法会有横线?以Date 过期方法为例 Java中的日期和时间处理方法 Date类(官方 ...

随机推荐

  1. .NET设计模式(3):抽象工厂模式(Abstract Factory)

    ):抽象工厂模式(Abstract Factory) 抽象工厂模式(Abstract Factory) --探索设计模式系列之三 Terrylee,2005年12月12日 转载:http://terr ...

  2. ASP.NET- 合并HTML的表格相同项单元格

    我对控件的依懒是比较少的.有几个控件我比较喜欢用,例如REPEATER显示列表的控件,能提供很大的方便. 使用REPEATER有一个比较方便的功能是通过几句代码就实现了相同项合并单元格合并,这个虽然平 ...

  3. C#程序实现动态调用DLL的研究

    摘 要:在<csdn开发高手>2004年第03期中的<化功大法——将DLL嵌入EXE>一文,介绍了如何把一个动态链接库作为一个资源嵌入到可执行文件,在可执行文件运行时,自动从资 ...

  4. [转] C++ Redistributable Package版本详解

    我们使用的程序常常都需要C++ Redistributable Package的支持.C++ Redistributable Package有众多版本,给安装带了不便. 目前(2013-12-04) ...

  5. matlab s变换

    A4=readdata('E:\mydata.TXT');[st,t,f] = st(A4(1:1000,2)); surf(t,f,10*log10(abs(st)),'EdgeColor','no ...

  6. ecshop如何去除后台左侧云服务中心菜单

    介绍一下如何去除后台云服务中心菜单: 打开admin/templates/menu.htm,把539行的 document.getElementById("menu-ul").in ...

  7. Runtime 10种用法

    来源:haojingxue_iOS 链接:http://www.jianshu.com/p/3182646001d1 阅读了多篇运行时的文章,感觉都很不错,从几篇文章里面提取一些个人认为比较重要的,偏 ...

  8. Android studio插件安装

    Android Studio安装插件的方式其实和Eclipse大同小异.废话不多说,直接上图: 区域1:你当前已经安装了的插件 区域2:在线安装 区域3:从硬盘安装,即针对你已经下载好了的插件,可通过 ...

  9. ios开发——实战OC篇&FMDB详解

    FMDB详解 前一篇文章中我们介绍的SQLite的使用,在iOS中原生的SQLite API在使用上相当不友好. 于是,就出现了一系列将SQLite API进行封装的库,例如FMDB.Plausibl ...

  10. 【shell】while read line 与for循环的区别

    http://m.blog.itpub.net/22664653/viewspace-1175858/