欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

判断是否为一周 -

更新时间: 2015-05-03 00:00:00 责任编辑: Author_N12

 

java中如何判断两个日期是否是同一周

java中如何判断两个日期是否是同一周

java中的Calendar是比较强的,今天经过测试确实如此。

大家查一下自己的日历“2004-12-25”是星期六,也就是说它是2004年中第52周的星期六,

那么“2004-12-26”到底是2004年的第几周哪,java中我测试取得的它的Week值是1,

那么也就是说它被看作2005年的第一周了,这个处理是比较好的。

可以用来判断“2004-12-26”和“2005-1-1”是同一周。

下面贴出代码,实现判断两个日期是否是同一周。

 

--------------------------------------------------------------------------------

 

import java.text.*;
import java.util.*;
public class isWeekSame 
{
 //------------------------------
 //类名称:isWeekSame
 //包含方法:1.isSameDate
 //    2.main
 //作者:lzueclipse
 //时间:2005-11-13
 //------------------------------
 //----------------------------
 //方法名称:isSameDate(String date1,String date2)
 //功能描述:判断date1和date2是否在同一周
 //输入参数:date1,date2
 //输出参数:
 //返 回 值:false 或 true
 //其它说明:主要用到Calendar类中的一些方法
 //-----------------------------
 public static boolean isSameDate(String date1,String date2)
 {
  SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
  Date d1 = null;
  Date d2 = null;
  try
  {
   d1 = format.parse(date1);
   d2 = format.parse(date2);
  }
  catch(Exception e)
  {
   e.printStackTrace();
  }
  Calendar cal1 = Calendar.getInstance();
  Calendar cal2 = Calendar.getInstance();
  cal1.setTime(d1);
  cal2.setTime(d2);
  int subYear = cal1.get(Calendar.YEAR)-cal2.get(Calendar.YEAR);
  //subYear==0,说明是同一年
  if(subYear == 0)
  {
   if(cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR))
    return true;
  }
  //例子:cal1是"2005-1-1",cal2是"2004-12-25"
  //java对"2004-12-25"处理成第52周
  // "2004-12-26"它处理成了第1周,和"2005-1-1"相同了
  //大家可以查一下自己的日历
  //处理的比较好
  //说明:java的一月用"0"标识,那么12月用"11"
  else if(subYear==1 && cal2.get(Calendar.MONTH)==11)
  {
   if(cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR))
    return true;
  }
  //例子:cal1是"2004-12-31",cal2是"2005-1-1"
  else if(subYear==-1 && cal1.get(Calendar.MONTH)==11)
  {
   if(cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR))
    return true;
       
  }
  return false;
 }
 public static void main(String[] args) 
 {
  // TODO Auto-generated method stub
     
  //测试1
  boolean a = isSameDate("2005-1-1","2005-1-3");
  if(a)
  {
   System.out.println("2005-1-1和2005-1-3是同一周!");
  }
  else
  {
   System.out.println("2005-1-1和2005-1-3不是同一周!");
  }
     
     
  //测试2
  boolean b = isSameDate("2005-1-1","2004-12-25");
  if(b)
  {
   System.out.println("2005-1-1和2004-12-25是同一周!");
  }
  else
  {
   System.out.println("2005-1-1和2004-12-25不是同一周!");
  }
     
  boolean c = isSameDate("2004-12-25","2005-1-1");
  if(c)
  {
   System.out.println("2004-12-25和2005-1-1是同一周!");
  }
  else
  {
   System.out.println("2004-12-25和2005-1-1不是同一周!");
  }
     
     
  //测试3
  boolean d = isSameDate("2005-1-1","2004-12-26");
  if(d)
  {
   System.out.println("2005-1-1和2004-12-26是同一周!");
  }
  else
  {
   System.out.println("2005-1-1和2004-12-26不是同一周!");
  }
     
  boolean e = isSameDate("2004-12-26","2005-1-1");
  if(e)
  {
   System.out.println("2004-12-26和2005-1-1是同一周!");
  }
  else
  {
   System.out.println("2004-12-26和2005-1-1不是同一周!");
  }
     
 }
}

 

上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2015-05-03 00:00:00
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/1467369/
本文WWW.DOC100.NET DOC100.NET版权所有。