Android编程实现计算两个日期之间天数并打印所有日期的方法

 更新时间:2018年01月17日 13:53:20   作者:解牛之术  
这篇文章主要介绍了Android编程实现计算两个日期之间天数并打印所有日期的方法,涉及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类型的值即可:private long static final long ONE_DAY_MS=24*60*60*1000

/**
* 计算两个日期之间的日期
* @param startTime
* @param endTime
*/
private void betweenDays(long startTime,long endTime,long mills_select,int code){
   Date date_start=new Date(startTime);
   Date date_end=new Date(endTime);
   //计算日期从开始时间于结束时间的0时计算
   Calendar fromCalendar = 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);
   Calendar toCalendar = 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);
   int s = (int) ((toCalendar.getTimeInMillis() - fromCalendar.getTimeInMillis())/ (ONE_DAY_MS));
   if(s>0){
     for(int i = 0;i<=s;i++){
       long todayDate = fromCalendar.getTimeInMillis() + i * ONE_DAY_MS;
       /**
        * yyyy-MM-dd E :2012-09-01
        */
       Log.i("打印日期",Utils.getCustonFormatTime(todayDate,"yyyy-MM-dd"));
     }
   }else {//此时在同一天之内
       Log.i("打印日期",Utils.getCustonFormatTime(startTime,"yyyy-MM-dd"));
   }
}

Utils.getCustonFormatTime()方法代码如下:

/**
* 格式化传入的时间
*
* @param time   需要格式化的时间
* @param formatStr 格式化的格式
* @return
*/
public static String getCustonFormatTime(long time, String formatStr) {
    SimpleDateFormat format = new SimpleDateFormat(formatStr);
    Date d1 = new Date(time);
    return format.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程序设计有所帮助。

相关文章

  • Android 简单实现倒计时功能

    Android 简单实现倒计时功能

    在 Android 中倒计时功能是比较常用的一个功能,比如短信验证码,付款倒计时等。今天小编给大家分享Android 简单实现倒计时功能,感兴趣的朋友一起看看吧
    2019-12-12
  • android判断设备是否有相机的实例代码

    android判断设备是否有相机的实例代码

    下面小编就为大家带来一篇android判断设备是否有相机的实例代码。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • Android实现带描边的圆角图片

    Android实现带描边的圆角图片

    这篇文章主要为大家详细介绍了Android实现带描边的圆角图片,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12
  • Android 隐藏及切换显示键盘

    Android 隐藏及切换显示键盘

    这篇文章主要介绍了Android 隐藏及切换显示键盘的相关资料,需要的朋友可以参考下
    2017-06-06
  • Android 优雅的读写Excel

    Android 优雅的读写Excel

    这篇文章主要为大家介绍了Android优雅的读写Excel实现示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • Android开发之滑动数值选择器NumberPicker用法示例

    Android开发之滑动数值选择器NumberPicker用法示例

    这篇文章主要介绍了Android开发之滑动数值选择器NumberPicker用法,结合实例形式分析了Android滑动数值选择器NumberPicker的功能、相关函数、事件监听、界面布局等操作技巧,需要的朋友可以参考下
    2019-03-03
  • 详解Java编程中的反射在Android开发中的应用

    详解Java编程中的反射在Android开发中的应用

    这篇文章主要介绍了详解Java编程中的反射在Android开发中的应用,主要来获取安卓系统的属性值,需要的朋友可以参考下
    2015-07-07
  • Android UI设计与开发之仿人人网V5.9.2最新版引导界面

    Android UI设计与开发之仿人人网V5.9.2最新版引导界面

    这篇文章主要为大家详细介绍了Android UI设计与开发之仿人人网V5.9.2最新版引导界面,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • ViewPager滑动灵敏度调整的方法实力

    ViewPager滑动灵敏度调整的方法实力

    这篇文章主要介绍了ViewPager滑动灵敏度调整的方法实力,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-10-10
  • 为Android Studio编写自定义Gradle插件的教程

    为Android Studio编写自定义Gradle插件的教程

    这篇文章主要介绍了为Android Studio编写自定义Gradle插件的教程,Android Studio现在基本上已经成为了安卓开发的标配IDE,友可以参考下
    2016-02-02

最新评论