`
wen742538485
  • 浏览: 228961 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

JAVA 计算任意两个日期之间的天数....

    博客分类:
  • java
阅读更多
public static int dispersionDay(String strDate1, String strDate2) {
  int iDay = 0;//记录相差的天数  
  try {
   int index1,index2;
   index1=strDate1.indexOf('-');
   index2=strDate1.lastIndexOf('-');
   int nYear, nMonth, nDay;
   nYear = Integer.parseInt(strDate1.substring(0, index1));
   nMonth = Integer.parseInt(strDate1.substring(index1+1, index2));
   nDay = Integer.parseInt(strDate1.substring(index2+1));
   Calendar objCalendarDate1 = Calendar.getInstance();//此函数new   GregorianCalendar()  
   objCalendarDate1.set(nYear, nMonth, nDay);
           
   index1=strDate2.indexOf('-');
   index2=strDate2.lastIndexOf('-');
  
   nYear = Integer.parseInt(strDate2.substring(0, index1));
   nMonth = Integer.parseInt(strDate2.substring(index1+1, index2));
   nDay = Integer.parseInt(strDate2.substring(index2+1));
   Calendar objCalendarDate2 = Calendar.getInstance();
   objCalendarDate2.set(nYear, nMonth, nDay);

   if (objCalendarDate2.equals(objCalendarDate1))
    return 0;

   if (objCalendarDate2.after(objCalendarDate1))//如果strDate2>strDate1  
   {
    while (!objCalendarDate2.equals(objCalendarDate1)) {
     objCalendarDate1.add(objCalendarDate1.DATE, 1);
     iDay++;
    }
    iDay = -iDay;// 负号代表 还相距几天,正号代表已过去几天。。。
   } else//如果strDate1>strDate2  
   {
    while (!objCalendarDate2.equals(objCalendarDate1)) {
     objCalendarDate2.add(objCalendarDate2.DATE, 1);
     iDay++;
    }
   }
  } catch (Exception e) {
  }
  return iDay;
}



/////////////////////////////使用简单的方法二///////////////////////

Calendar c1=new  GregorianCalendar(2008,7,8);
Calendar c2=new  GregorianCalendar(2008,1,2);
System.out.println(">>>>>>>>>>>>>>>>==="+(c1.getTimeInMillis()-c2.getTimeInMillis())/(1000*60*60*24));

////////////注意点////////////

》》》》》月份是0-11

》》》》》new GregorianCalendar()参数为空代表系统所在时间。。。

如果换为 new Date()且参数为空,那么计算出来结果为错误的。。。。。

改正方案是:new Date(int ,int ,int)带参构造函数。。。。
分享到:
评论

相关推荐

    java工具类:Java中计算任意两个日期之间的工作天数.java

    Java中计算任意两个日期之间的工作天数.java 工具类

    计算任意两年之间的间隔天数的java代码

    计算任意两年之间的间隔天数的java代码,可以自己输入任意的年月日。

    java实现输入任意两个日期输出月份数和天数

    java实现输入任意两个日期输出月份数和天数,综合考虑闰年、2月等因素,对于整月计算利息或按天数计算利息提供基础工具类。也可以吧内部类独立出来,方便跨包调用,可自行调整。很实用的一个实现。其他百度查到的很...

    常用的java工具类

    2.[工具类] Java中计算任意两个日期之间的工作天数 .java 3.[工具类] MD5 .java 4.[工具类] 时间工具TimeUtil.java 5.[工具类] 通信服务端simpleServer 6.[工具类] 使用Java程序来实现HTTP文件的队列下载 .java 7....

    用JAVA编写的计算天数的程序,例如从你出生到今天已经多少天了

    用JAVA编写的计算天数的程序,例如从你出生到今天已经多少天了。可以任意的输入两个日期,计算其中间的天数

    30个java工具类

    [工具类] Java中计算任意两个日期之间的工作天数 .java.txt [工具类] java抓取网页 .java.txt [工具类] MD5 .java.txt [工具类] MD5强化版 .java.txt [工具类] MD5超强化版 .java.txt [工具类] XML 实用工具类 .java...

    日期处理技术 java

    1.对于任意三个整数,判断其否为一个合法的日期值. 2.给定一个日期值,计算若干天后的日期值. 3.如果有两个日期值,计算它们相距的天数.

    【强2】30个java工具类

    [工具类] Java中计算任意两个日期之间的工作天数 .java.txt [工具类] java抓取网页 .java.txt [工具类] MD5 .java.txt [工具类] MD5强化版 .java.txt [工具类] MD5超强化版 .java.txt [工具类] XML 实用工具类 .java...

    datediff:Java编码练习,用于计算任何两个日期之间的天数,而无需将Java库类用于日期或日历。 这是一个有趣的练习

    编码练习计算任意两个日期之间的天数差异jesimone57,2017年6月6日描述创建一个可以按以下格式成对读取日期的应用程序:DD MM YYYY, DD MM YYYY验证输入数据,并计算两个日期之间的天数之差。 应用程序的输出应采用...

    jaava和jsp工具类

    [工具类] 成各种密码随机串,加密解密,编码解码,执行url.java [工具类] 读取、打印输出、保存xml .java ...[工具类] Java中计算任意两个日期之间的工作天数 .java [工具类] java抓取网页 .java [工具类] MD5 .java

    日期处理技术。1、对于任意三个整数,判断其是否为一个合法的日期值。

    1、对于任意三个整数,判断其是否为一个合法的日期值。 2、给定一个日期值,计算若干天后的日期值。 3、如果有两个日期值,计算它们相距的天数。

    编写Java程序随机输入日期计算星期几,打印任意一年的日历

    随机输入日期计算星期几,打印任意一年的日历 已知,1900年1月1日是星期1,用户随机输入年月日,计算星期几 实现思路: 一、知道1900年1月1日为星期一,求输入的年份月份与1900年1月1日相隔的总天数。闰年366天,...

    dijkstra:先开最短路径

    (3) 使用 Dijkstra 算法找到图中任意两个顶点之间的最短路径。 (4) 打印图形。 (5) 找出图中所有节点的可达顶点集。 程序设计 附带的 java 项目包含以下文件。 1. Graph.java 2. WeightedGraph.java 3. Vertex....

    stockExchange_DynamicProgramming.java:CSci_433中的项目2

    您的JAVA程序的输入应接受两行。 第一行包含整数N,即天数。 第二行包含N个整数,代表接下来N天的预计TMP股价。 输出应该是最大的利润。 样本:输入:3 9 6 3输出:0 输入:4 1 2 1 2输出:2 输入:3 1 2 10...

    2009达内SQL学习笔记

    当两个表有相同字段时必须加前缀,列名前需加表名和“.”,如“s_emp.id”。 1、用法:SELECT columns,prod2,prod3<列> FROM Table1,table2<表名> 分号结束 如: select id from s_emp; select last_name,name ...

    Oracle9i的init.ora参数中文说明

    说明: 与 NLS_TIME_FORMAT 相似, 只不过它设置的是 TIMESTAMP 数据类型的默认值, 该数据类型既存储YEAR, MONTH 和 DAY 这几个日期值, 也存储 HOUR, MINUTE 和 SECOND 这几个时间值。 语法: TIMESTAMP '1997-01-31 ...

    邦仁桶装水软件(送水管理系统)

    设无数个)、收款方式、片区、月结日、订水频度、洗机情况、销户日期、业务员/配送员及提成、借机 、押瓶、喜爱品牌及价格、备注和客户财务信息等设置  强大的提醒功能 根据客户实际的订水周期设定天数,超过该...

Global site tag (gtag.js) - Google Analytics