对于项目中的某些功能,可能需要实现连续签到的案例,如打卡上班等,在特定时间点之后才可以生效等
//获得当前时间的对象
Calendar instance = Calendar.getInstance();
//获得当前的年份
int year = instance.get(Calendar.YEAR);
//获得当前天数是该年中的第几天
int day = instance.get(Calendar.DAY_OF_YEAR);
//如果该日是一年中的第一天
if(day == 1){
//将该年份设置成上一年的时间点,如今年是2018,则设置成2017年
instance.set(Calendar.YEAR,year-1);
//获取去年(2017)的最后一天
int maxday = instance.getActualMaximum(Calendar.DAY_OF_YEAR);
//进行其他的操作
找了一个写好的工具类,直接根据时间差获取相隔天数
public static long getDaysBetweenDates(Date after, Date before) {
if(after!=null&&before!=null){
//return (long)((after.getTime()-before.getTime())/864000000);
java.util.Calendar calst = java.util.Calendar.getInstance();
java.util.Calendar caled = java.util.Calendar.getInstance();
calst.setTime(before);
caled.setTime(after);
//设置时间为0时
calst.set(java.util.Calendar.HOUR_OF_DAY, 0);
calst.set(java.util.Calendar.MINUTE, 0);
calst.set(java.util.Calendar.SECOND, 0);
caled.set(java.util.Calendar.HOUR_OF_DAY, 0);
caled.set(java.util.Calendar.MINUTE, 0);
caled.set(java.util.Calendar.SECOND, 0);
//得到两个日期相差的天数
int days = ((int) (caled.getTime().getTime() / 1000) - (int) (calst
.getTime().getTime() / 1000)) / 3600 / 24;
return days;
}
return 0;
}