注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

姑射道人的博客

博客新地址:nixuchen.com

 
 
 

日志

 
 

计算两个日期的天数  

2013-01-09 10:08:52|  分类: android |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

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)带参构造函数。。。。

  评论这张
 
阅读(364)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017