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

流星永恒的博客

JSF,Facelets,Rich(Prime)Faces,和java的笔记

 
 
 

日志

 
 

java 日期差计算(Calendar)  

2009-12-21 11:59:12|  分类: java |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

 

1. 相差天数

1)以Calendar类型为参数

/**
  *
  * @param c1
  * @param c2
  * @return
  * @throws Exception
  */
 public static long diffDays(Calendar c1, Calendar c2) throws Exception {
  if(null==c1||null==c2){
   throw new Exception("Params null exception");
  }
  long diff = 0;
  if (c1.compareTo(c2) == 0)
   return 0;
  if (c1.compareTo(c2) > 0) {
   while (true) {
    diff++;
    c2.add(Calendar.DAY_OF_YEAR, 1);
    if (c2.compareTo(c1) == 0)
     return -diff;
   }
  }
  
  while (true) {
   diff++;
   c1.add(Calendar.DAY_OF_YEAR, 1);
   if (c1.compareTo(c2) == 0)
    return diff;
  }
 }

2)以Date类型为参数

/**
  *
  * @param date1
  * @param date2
  * @return discrepant days
  * @throws Exception
  */
 public static long diffDays(Date date1, Date date2) throws Exception {
  if(null==date1||null==date2){
   throw new Exception("Params null exception");
  }
  long diff = 0;
  if (date1.compareTo(date2) == 0)
   return 0;
  Calendar c1 = Calendar.getInstance();
  c1.setTime(date1);
  Calendar c2 = Calendar.getInstance();
  c2.setTime(date2);
  if (date1.compareTo(date2) > 0) {
   while (true) {
    diff++;
    c2.add(Calendar.DAY_OF_YEAR, 1);
    if (c2.compareTo(c1) == 0)
     return -diff;
   }
  }
  
  while (true) {
   diff++;
   c1.add(Calendar.DAY_OF_YEAR, 1);
   System.out.print(c1.getTime()+"   ");
   System.out.println(c2.getTime());
   if (c1.compareTo(c2) == 0)
    return diff;
  }
 }

年的比较简单,直接取年比较即可。月的比较类似,换一下add方法的Calendar.DAY_OF_YEAR,可以自己动手练习下。

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

历史上的今天

在LOFTER的更多文章

评论

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

页脚

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