Android编程实现计算两个日期之间天数并打印所有日期的方法
本文实例讲述了Android编程实现计算两个日期之间天数并打印所有日期的方法。分享给大家供大家参考,具体如下:
以下代码是计算两个日期之间的天数,并打印所有日期
注:开始时,增加天数时,一天的毫秒数直接用24*60*60*1000来逐步增加天数,再测试时发现,当两个日期之间的天数超过24天时,打印的日期反而在开始日期之前了,(如打印2016/12/18-2017/1/23,打印的日期反而有2016/12/1),后来发现原因在于24*60*60*1000是一个int值,int值的取值范围在2的31次方:+/-2147483648,当超过最大数时,就会变成最小数,这样反而导致日期变小,将24*60*60*1000变为long类型的值即可:privatelongstaticfinallongONE_DAY_MS=24*60*60*1000
/**
*计算两个日期之间的日期
*@paramstartTime
*@paramendTime
*/
privatevoidbetweenDays(longstartTime,longendTime,longmills_select,intcode){
Datedate_start=newDate(startTime);
Datedate_end=newDate(endTime);
//计算日期从开始时间于结束时间的0时计算
CalendarfromCalendar=Calendar.getInstance();
fromCalendar.setTime(date_start);
fromCalendar.set(Calendar.HOUR_OF_DAY,0);
fromCalendar.set(Calendar.MINUTE,0);
fromCalendar.set(Calendar.SECOND,0);
fromCalendar.set(Calendar.MILLISECOND,0);
CalendartoCalendar=Calendar.getInstance();
toCalendar.setTime(date_end);
toCalendar.set(Calendar.HOUR_OF_DAY,0);
toCalendar.set(Calendar.MINUTE,0);
toCalendar.set(Calendar.SECOND,0);
toCalendar.set(Calendar.MILLISECOND,0);
ints=(int)((toCalendar.getTimeInMillis()-fromCalendar.getTimeInMillis())/(ONE_DAY_MS));
if(s>0){
for(inti=0;i<=s;i++){
longtodayDate=fromCalendar.getTimeInMillis()+i*ONE_DAY_MS;
/**
*yyyy-MM-ddE:2012-09-01
*/
Log.i("打印日期",Utils.getCustonFormatTime(todayDate,"yyyy-MM-dd"));
}
}else{//此时在同一天之内
Log.i("打印日期",Utils.getCustonFormatTime(startTime,"yyyy-MM-dd"));
}
}
Utils.getCustonFormatTime()方法代码如下:
/**
*格式化传入的时间
*
*@paramtime需要格式化的时间
*@paramformatStr格式化的格式
*@return
*/
publicstaticStringgetCustonFormatTime(longtime,StringformatStr){
SimpleDateFormatformat=newSimpleDateFormat(formatStr);
Dated1=newDate(time);
returnformat.format(d1);
}
PS:这里再为大家推荐几款关于日期与时间计算的在线工具供大家参考使用:
在线日期/天数计算器:
http://tools.jb51.net/jisuanqi/date_jisuanqi
在线万年历日历:
http://tools.jb51.net/bianmin/wannianli
在线阴历/阳历转换工具:
http://tools.jb51.net/bianmin/yinli2yangli
Unix时间戳(timestamp)转换工具:
http://tools.jb51.net/code/unixtime
更多关于Android相关内容感兴趣的读者可查看本站专题:《Android日期与时间操作技巧总结》、《Android开发入门与进阶教程》、《Android基本组件用法总结》、《Android视图View技巧总结》、《Android布局layout技巧总结》及《Android控件用法总结》
希望本文所述对大家Android程序设计有所帮助。