本文實例講述了Android編程實現(xiàn)計算兩個日期之間天數(shù)并打印所有日期的方法。分享給大家供大家參考,具體如下:
為桑珠孜等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及桑珠孜網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為網(wǎng)站設(shè)計、做網(wǎng)站、桑珠孜網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
以下代碼是計算兩個日期之間的天數(shù),并打印所有日期
注:開始時,增加天數(shù)時,一天的毫秒數(shù)直接用24*60*60*1000來逐步增加天數(shù),再測試時發(fā)現(xiàn),當兩個日期之間的天數(shù)超過24天時,打印的日期反而在開始日期之前了,(如打印2016/12/18-2017/1/23,打印的日期反而有2016/12/1),后來發(fā)現(xiàn)原因在于24*60*60*1000是一個int值,int值的取值范圍在2的31次方:+/- 2147483648,當超過最大數(shù)時,就會變成最小數(shù),這樣反而導(dǎo)致日期變小,將24*60*60*1000變?yōu)閘ong類型的值即可: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); //計算日期從開始時間于結(jié)束時間的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 {//此時在同一天之內(nèi) 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:這里再為大家推薦幾款關(guān)于日期與時間計算的在線工具供大家參考使用:
在線日期/天數(shù)計算器:
http://tools.jb51.net/jisuanqi/date_jisuanqi
在線萬年歷日歷:
http://tools.jb51.net/bianmin/wannianli
在線陰歷/陽歷轉(zhuǎn)換工具:
http://tools.jb51.net/bianmin/yinli2yangli
Unix時間戳(timestamp)轉(zhuǎn)換工具:
http://tools.jb51.net/code/unixtime
更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Android日期與時間操作技巧總結(jié)》、《Android開發(fā)入門與進階教程》、《Android基本組件用法總結(jié)》、《Android視圖View技巧總結(jié)》、《Android布局layout技巧總結(jié)》及《Android控件用法總結(jié)》
希望本文所述對大家Android程序設(shè)計有所幫助。
當前文章:Android編程實現(xiàn)計算兩個日期之間天數(shù)并打印所有日期的方法
分享鏈接:http://jinyejixie.com/article24/jjhgce.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機、網(wǎng)站策劃、App開發(fā)、企業(yè)建站、小程序開發(fā)、網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)