日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

计算两个日期之间有多少天多少小时多少分钟

發(fā)布時間:2025/5/22 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 计算两个日期之间有多少天多少小时多少分钟 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

?Java代碼

  • package date;
  • ?
  • import java.text.ParseException;
  • import java.text.SimpleDateFormat;
  • import java.util.ArrayList;
  • import java.util.Calendar;
  • import java.util.Date;
  • import java.util.List;
  • ?
  • public class CalculateIntervalBetween2Dates {
  • private static final long DAY=24*60*60*1000;
  • private static final long HOUR=60*60*1000;
  • private static final long MINUTES=60*1000;
  • private static final long SECONDS=1000;
  • private static final long MILLIONSECONDS=1;
  • ?
  • public static void main(String[] args) {
  • String startDateStr = "20121022";
  • String endDateStr = "20121206";
  • CalculateIntervalBetween2Dates.listNumberOfDates(startDateStr, endDateStr);
  • CalculateIntervalBetween2Dates.calculateInterval(startDateStr, endDateStr,MILLIONSECONDS);
  • CalculateIntervalBetween2Dates.calculateInterval(startDateStr, endDateStr,SECONDS);
  • CalculateIntervalBetween2Dates.calculateInterval(startDateStr, endDateStr,MINUTES);
  • CalculateIntervalBetween2Dates.calculateInterval(startDateStr, endDateStr,HOUR);
  • CalculateIntervalBetween2Dates.calculateInterval(startDateStr, endDateStr,DAY);
  • }
  • ?
  • /**
  • * List dates between start date and end date, including the start date and end date.
  • * @param startDateStr
  • * @param endDateStr
  • */
  • public static void listNumberOfDates(String startDateStr,String endDateStr){
  • SimpleDateFormat sf = new SimpleDateFormat("yyyyMMdd");
  • Date startDate = null;
  • Date endDate = null;
  • try {
  • startDate = sf.parse(startDateStr);
  • endDate = sf.parse(endDateStr);
  • } catch (ParseException e) {
  • e.printStackTrace();
  • }
  • Calendar c1 = Calendar.getInstance();
  • List<Date> cancelDates = new ArrayList<Date>();
  • if (startDate != null && endDate != null && startDate.before(endDate)) {
  • Date tempDate = startDate;
  • do {
  • cancelDates.add(tempDate);
  • c1.setTime(tempDate);
  • c1.add(Calendar.DAY_OF_MONTH, 1);
  • tempDate = c1.getTime();
  • } while (tempDate.before(endDate));
  • cancelDates.add(endDate);
  • }
  • ?
  • System.out.println("There are " + cancelDates.size() + " days between " + sf.format(startDate) + " and " + sf.format(endDate) + ", inclusive.");
  • System.out.println("See the following list:");
  • for (Date date : cancelDates) {
  • System.out.println(sf.format(date));
  • }
  • System.out.println();
  • }
  • ?
  • /**
  • * Calculate how many days/hours/minutes/seconds/million seconds between start date and end date, including the start date and end date.
  • * @param startDateStr
  • * @param endDateStr
  • * @param interval
  • */
  • public static void calculateInterval(String startDateStr,String endDateStr,long interval){
  • SimpleDateFormat sf = new SimpleDateFormat("yyyyMMdd");
  • Date startDate = null;
  • Date endDate = null;
  • try {
  • startDate = sf.parse(startDateStr);
  • endDate = sf.parse(endDateStr);
  • } catch (ParseException e) {
  • e.printStackTrace();
  • }
  • Calendar c1 = Calendar.getInstance();
  • c1.setTime(startDate);
  • long startInMillis=c1.getTimeInMillis();
  • c1.setTime(endDate);
  • //inclusive,2009/10/24-2009/10/23=1,but actually 2 days
  • c1.add(Calendar.DAY_OF_MONTH, 1);
  • ?
  • long endInMillis=c1.getTimeInMillis();
  • long between=endInMillis-startInMillis;
  • System.out.println("There are " + (between/interval) +" "+getIntervalLabel(interval) + " between " + sf.format(startDate) + " and " + sf.format(endDate) + ", inclusive");
  • }
  • ?
  • private static String getIntervalLabel(long interval){
  • if(interval==DAY){
  • return "days";
  • }else if(interval==HOUR){
  • return "hours";
  • }else if(interval==MINUTES){
  • return "minutes";
  • }else if(interval==SECONDS){
  • return "seconds";
  • }else if(interval==MILLIONSECONDS){
  • return "million seconds";
  • }else{
  • return "error";
  • }
  • }
  • } ?
  • 轉(zhuǎn)載于:https://blog.51cto.com/shuaigee/1140917

    總結(jié)

    以上是生活随笔為你收集整理的计算两个日期之间有多少天多少小时多少分钟的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。