Java代码

  1. package date;
  2. import java.text.ParseException;
  3. import java.text.SimpleDateFormat;
  4. import java.util.ArrayList;
  5. import java.util.Calendar;
  6. import java.util.Date;
  7. import java.util.List;
  8. public class CalculateIntervalBetween2Dates {
  9. private static final long DAY=24*60*60*1000;
  10. private static final long HOUR=60*60*1000;
  11. private static final long MINUTES=60*1000;
  12. private static final long SECONDS=1000;
  13. private static final long MILLIONSECONDS=1;
  14. public static void main(String[] args) {
  15. String startDateStr = "20121022";
  16. String endDateStr = "20121206";
  17. CalculateIntervalBetween2Dates.listNumberOfDates(startDateStr, endDateStr);
  18. CalculateIntervalBetween2Dates.calculateInterval(startDateStr, endDateStr,MILLIONSECONDS);
  19. CalculateIntervalBetween2Dates.calculateInterval(startDateStr, endDateStr,SECONDS);
  20. CalculateIntervalBetween2Dates.calculateInterval(startDateStr, endDateStr,MINUTES);
  21. CalculateIntervalBetween2Dates.calculateInterval(startDateStr, endDateStr,HOUR);
  22. CalculateIntervalBetween2Dates.calculateInterval(startDateStr, endDateStr,DAY);
  23. }
  24. /**
  25. * List dates between start date and end date, including the start date and end date.
  26. * @param startDateStr
  27. * @param endDateStr
  28. */
  29. public static void listNumberOfDates(String startDateStr,String endDateStr){
  30. SimpleDateFormat sf = new SimpleDateFormat("yyyyMMdd");
  31. Date startDate = null;
  32. Date endDate = null;
  33. try {
  34. startDate = sf.parse(startDateStr);
  35. endDate = sf.parse(endDateStr);
  36. } catch (ParseException e) {
  37. e.printStackTrace();
  38. }
  39. Calendar c1 = Calendar.getInstance();
  40. List<Date> cancelDates = new ArrayList<Date>();
  41. if (startDate != null && endDate != null && startDate.before(endDate)) {
  42. Date tempDate = startDate;
  43. do {
  44. cancelDates.add(tempDate);
  45. c1.setTime(tempDate);
  46. c1.add(Calendar.DAY_OF_MONTH, 1);
  47. tempDate = c1.getTime();
  48. } while (tempDate.before(endDate));
  49. cancelDates.add(endDate);
  50. }
  51. System.out.println("There are " + cancelDates.size() + " days between " + sf.format(startDate) + " and " + sf.format(endDate) + ", inclusive.");
  52. System.out.println("See the following list:");
  53. for (Date date : cancelDates) {
  54. System.out.println(sf.format(date));
  55. }
  56. System.out.println();
  57. }
  58. /**
  59. * Calculate how many days/hours/minutes/seconds/million seconds between start date and end date, including the start date and end date.
  60. * @param startDateStr
  61. * @param endDateStr
  62. * @param interval
  63. */
  64. public static void calculateInterval(String startDateStr,String endDateStr,long interval){
  65. SimpleDateFormat sf = new SimpleDateFormat("yyyyMMdd");
  66. Date startDate = null;
  67. Date endDate = null;
  68. try {
  69. startDate = sf.parse(startDateStr);
  70. endDate = sf.parse(endDateStr);
  71. } catch (ParseException e) {
  72. e.printStackTrace();
  73. }
  74. Calendar c1 = Calendar.getInstance();
  75. c1.setTime(startDate);
  76. long startInMillis=c1.getTimeInMillis();
  77. c1.setTime(endDate);
  78. //inclusive,2009/10/24-2009/10/23=1,but actually 2 days
  79. c1.add(Calendar.DAY_OF_MONTH, 1);
  80. long endInMillis=c1.getTimeInMillis();
  81. long between=endInMillis-startInMillis;
  82. System.out.println("There are " + (between/interval) +" "+getIntervalLabel(interval) + " between " + sf.format(startDate) + " and " + sf.format(endDate) + ", inclusive");
  83. }
  84. private static String getIntervalLabel(long interval){
  85. if(interval==DAY){
  86. return "days";
  87. }else if(interval==HOUR){
  88. return "hours";
  89. }else if(interval==MINUTES){
  90. return "minutes";
  91. }else if(interval==SECONDS){
  92. return "seconds";
  93. }else if(interval==MILLIONSECONDS){
  94. return "million seconds";
  95. }else{
  96. return "error";
  97. }
  98. }
  99. }

转载于:https://blog.51cto.com/shuaigee/1140917

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

  1. sqlserver两个日期之间的年数_SQL语句计算两个日期之间有多少个工作日的方法

    /* 因为工作中一个奇怪的需求,要用SQL语言计算两个日期间有多少个工作日. 设定是一个星期有5个工作日,从星期一到星期五 说明: 第一个星期的工作日数:DATEPART(dw, @begdt)-DA ...

  2. Java Date Calendar类的使用 如何计算两个日期之间有多少天

    Java工具类:java.util.Date,是Java中经常被用到一个日期时间的类.可以用来表示具体的年月日时分秒.java.util.Calendar,是日历类 导包:import java.ut ...

  3. Go获取n天前或后的日期、日期转秒时间戳、计算两个日期之间的天数差

    获取n天前或后的日期: // GetBeforeTime 获取n天前的秒时间戳.日期时间戳 // _day为负则代表取前几天,为正则代表取后几天,0则为今天 func GetBeforeTime(_d ...

  4. 微软面试题目(一) 计算两个日期之间的天数

    微软的面试,没能参加啊,只好打听了下题目,其中一题是在20分钟内写出:计算两个日期之间天数的方法.昨天晚上想了一下,今天实现了一下,经过调试,差不多一个小时才弄好,惭愧啊 代码如下: /******* ...

  5. dateutil 日期计算_java计算两个日期之间的天数

    展开全部 在Java开发物流或是其他功能的时候会用到两个日期相差多天的数据,62616964757a686964616fe78988e69d8331333337616538所以整理了一下备用. 调用方 ...

  6. 如何利用计算机计算天数,如何应用Win10系统电脑中的计算器计算两个日期之间的天数?...

    如何应用Win10系统电脑中的计算器计算两个日期之间的天数? 相信很多小伙伴都有在使用windows10系统的电脑,其中的计算器如何才能用来计算两个日期之间的天数呢?方法很简单,下面小编就来为大家介绍 ...

  7. 计算两个日期之间的年数

    //问题2:计算两个日期之间的年数 #include <iostream.h> class Date { private :int year, month, day;public :Dat ...

  8. java中算两个时间内的秒数_java – Joda Time – 计算两个日期之间的秒数会引发异常....

    我使用以下代码来计算两个日期之间的秒数差异: long secondsBetween = (Seconds.secondsBetween(new LocalDate("1901-01-01& ...

  9. 怎么用计算机计算年月份,如何使用Excel计算两个日期之间的月数?

    一.这可以通过DATEDIF函数完成. 二. DATEDIF函数的定义 DATEDIF函数是Excel中的隐藏函数,而不是帮助和插入公式中的隐藏函数.返回两个日期之间的年\月\日间隔的数量. DATE ...

最新文章

  1. 【Gamma】“北航社团帮”展示博客
  2. mysql cluster mysql 节点无法关闭_Mysql Cluster 非root用户启动ndbd节点报错
  3. PTA 1002 Business (35分)
  4. img 标签 点击跳出图层_你竟然不知道cad图层也可以导出与导入?
  5. 第一次训练赛的相关总结和教训!
  6. [Python]使用 lambda 函数
  7. 结对项目开发-电梯调度
  8. 为什么python的命名不能以数字开头,Python模块名称以数字开头
  9. Java伪代码之大道至简读后感
  10. win7下安装tomcat
  11. DSP之时钟与定时器之一时钟发生器
  12. C# 操作offfice权限问题
  13. android 微信浮窗实现_Android仿微信文章悬浮窗效果
  14. 医院招聘计算机人员面试经典问题,医院收费员常见面试题目
  15. 【Unity】U3D TD游戏制作实例(五)防御塔设计:对象排序、锁定敌人、攻击敌人、防御塔特色功能实现
  16. 京东618主场迎战:变与不变,志在必得
  17. [cv]郑哲东 Deep-ReID——Learn pedestrian representations from
  18. 信息系统项目管理系列之十:项目人力资源管理
  19. AMD皓龙系列服务器CPU,霄龙PK皓龙!AMD CPU 10年历史对比:一步登天
  20. 冒泡排序(Bubble Sort)

热门文章

  1. EIGRP协议邻居详解及故障实战分析
  2. API设计中防重放攻击
  3. MySQL之一致性检测及数据同步
  4. Git 命令集 实践整理
  5. Keepalived+nginx造成流量异常
  6. 极致真实感受 无边硬屏即将登场
  7. 嵌入式C语言查表法的项目应用
  8. Linux -- ***检测系统(IDS)介绍及应用(1)
  9. 一个普通ERROR 1135 (HY000)错误引发的血案:
  10. 使用svnsync备份详解[转载+修改]