Android編程實(shí)現(xiàn)計(jì)算兩個(gè)日期之間天數(shù)并打印所有日期的方法
本文實(shí)例講述了Android編程實(shí)現(xiàn)計(jì)算兩個(gè)日期之間天數(shù)并打印所有日期的方法。分享給大家供大家參考,具體如下:
以下代碼是計(jì)算兩個(gè)日期之間的天數(shù),并打印所有日期
注:開始時(shí),增加天數(shù)時(shí),一天的毫秒數(shù)直接用24*60*60*1000來逐步增加天數(shù),再測試時(shí)發(fā)現(xiàn),當(dāng)兩個(gè)日期之間的天數(shù)超過24天時(shí),打印的日期反而在開始日期之前了,(如打印2016/12/18-2017/1/23,打印的日期反而有2016/12/1),后來發(fā)現(xiàn)原因在于24*60*60*1000是一個(gè)int值,int值的取值范圍在2的31次方:+/- 2147483648,當(dāng)超過最大數(shù)時(shí),就會變成最小數(shù),這樣反而導(dǎo)致日期變小,將24*60*60*1000變?yōu)閘ong類型的值即可:private long static final long ONE_DAY_MS=24*60*60*1000
/**
* 計(jì)算兩個(gè)日期之間的日期
* @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);
//計(jì)算日期從開始時(shí)間于結(jié)束時(shí)間的0時(shí)計(jì)算
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 {//此時(shí)在同一天之內(nèi)
Log.i("打印日期",Utils.getCustonFormatTime(startTime,"yyyy-MM-dd"));
}
}
Utils.getCustonFormatTime()方法代碼如下:
/**
* 格式化傳入的時(shí)間
*
* @param time 需要格式化的時(shí)間
* @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:這里再為大家推薦幾款關(guān)于日期與時(shí)間計(jì)算的在線工具供大家參考使用:
在線日期/天數(shù)計(jì)算器:
http://tools.jb51.net/jisuanqi/date_jisuanqi
在線萬年歷日歷:
http://tools.jb51.net/bianmin/wannianli
在線陰歷/陽歷轉(zhuǎn)換工具:
http://tools.jb51.net/bianmin/yinli2yangli
Unix時(shí)間戳(timestamp)轉(zhuǎn)換工具:
http://tools.jb51.net/code/unixtime
更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Android日期與時(shí)間操作技巧總結(jié)》、《Android開發(fā)入門與進(jìn)階教程》、《Android基本組件用法總結(jié)》、《Android視圖View技巧總結(jié)》、《Android布局layout技巧總結(jié)》及《Android控件用法總結(jié)》
希望本文所述對大家Android程序設(shè)計(jì)有所幫助。
- Android實(shí)現(xiàn)PDF預(yù)覽打印功能
- Android gradle插件打印時(shí)間戳的方法詳解
- Android中如何安全地打印日志詳解
- Mac 下 Android Studio 不打印日志的解決辦法
- Android jni調(diào)試打印char陣列的實(shí)例詳解
- Android下的POS打印機(jī)調(diào)用的簡單實(shí)現(xiàn)
- Android 藍(lán)牙連接 ESC/POS 熱敏打印機(jī)打印實(shí)例(ESC/POS指令篇)
- Android 藍(lán)牙連接 ESC/POS 熱敏打印機(jī)打印實(shí)例(藍(lán)牙連接篇)
- Android打印機(jī)--小票打印格式及模板設(shè)置實(shí)例代碼
- Android進(jìn)階——安卓調(diào)用ESC/POS打印機(jī)打印實(shí)例
- Android手機(jī)通過藍(lán)牙連接佳博打印機(jī)的實(shí)例代碼
- Android實(shí)現(xiàn)系統(tǒng)打印功能
相關(guān)文章
Android 簡單實(shí)現(xiàn)倒計(jì)時(shí)功能
在 Android 中倒計(jì)時(shí)功能是比較常用的一個(gè)功能,比如短信驗(yàn)證碼,付款倒計(jì)時(shí)等。今天小編給大家分享Android 簡單實(shí)現(xiàn)倒計(jì)時(shí)功能,感興趣的朋友一起看看吧2019-12-12
android判斷設(shè)備是否有相機(jī)的實(shí)例代碼
下面小編就為大家?guī)硪黄猘ndroid判斷設(shè)備是否有相機(jī)的實(shí)例代碼。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-03-03
Android開發(fā)之滑動數(shù)值選擇器NumberPicker用法示例
這篇文章主要介紹了Android開發(fā)之滑動數(shù)值選擇器NumberPicker用法,結(jié)合實(shí)例形式分析了Android滑動數(shù)值選擇器NumberPicker的功能、相關(guān)函數(shù)、事件監(jiān)聽、界面布局等操作技巧,需要的朋友可以參考下2019-03-03
詳解Java編程中的反射在Android開發(fā)中的應(yīng)用
這篇文章主要介紹了詳解Java編程中的反射在Android開發(fā)中的應(yīng)用,主要來獲取安卓系統(tǒng)的屬性值,需要的朋友可以參考下2015-07-07
Android UI設(shè)計(jì)與開發(fā)之仿人人網(wǎng)V5.9.2最新版引導(dǎo)界面
這篇文章主要為大家詳細(xì)介紹了Android UI設(shè)計(jì)與開發(fā)之仿人人網(wǎng)V5.9.2最新版引導(dǎo)界面,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08
ViewPager滑動靈敏度調(diào)整的方法實(shí)力
這篇文章主要介紹了ViewPager滑動靈敏度調(diào)整的方法實(shí)力,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-10-10
為Android Studio編寫自定義Gradle插件的教程
這篇文章主要介紹了為Android Studio編寫自定義Gradle插件的教程,Android Studio現(xiàn)在基本上已經(jīng)成為了安卓開發(fā)的標(biāo)配IDE,友可以參考下2016-02-02

