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

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

    博客分类:
  • 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不是同一周!");
  }
 
 }

}

 

分享到:
评论

相关推荐

    一行代码判断两个日期是否在同一周

    本文将讨论如何使用C#语言高效地判断两个日期是否在同一周,针对给定的代码进行分析,并提供两种更准确、可读性更强的方法。 首先,让我们回顾一下原始的代码段: ```csharp private bool IsInSameWeek(DateTime ...

    判断当前日期是否在本月的最后一周内

    本文将详细讲解如何根据给定的标题和描述,利用Java编程语言来判断当前日期是否在本月的最后一周内,以及如何判断日期是否在某一周内的最后几天、前几天或24小时内。 首先,我们需要引入Java的`java.time`包,这个...

    判断是否是节假日以及几个工作日后的日期(包含json格式依赖jar包)

    这个功能可能封装在一个名为`getNthWorkingDay()`的方法中,它接受两个参数:一个日期字符串和一个整数n,表示n个工作日后的日期。这个方法需要考虑到节假日和周末,如果遇到节假日则跳过,直到找到第n个工作日。...

    java swing 时间日期选择控件

    Swing提供了JCalendar和JDatePicker这两个常用的日期选择组件,它们使得用户能够方便地在日历视图中选择日期,或者通过一个文本框和下拉小部件选择日期和时间。 1. **JCalendar**: 这是一个第三方组件,通常由`...

    利用Java中Calendar计算两个日期之间的天数和周数

    在Java中,计算两个日期之间的天数通常涉及以下几个步骤: 1. 创建`Calendar`实例:首先,通过调用`Calendar.getInstance()`方法获取一个`Calendar`对象,这会返回一个默认的`GregorianCalendar`实例,因为Java默认...

    两个日期间计算 除去节假日 非工作时间

    在 Java 语言中,计算两个日期之间的工作日时间是一个常见的需求,特别是在需要排除周末和法定节假日的情况下。本文将通过一个示例代码,详细介绍如何计算两个日期之间的工作日时间,排除周末和法定节假日。 首先,...

    Android获取一周每一天日期的源码

    总结,获取Android中一周每一天的日期,你可以利用Java 8的`java.time`包或`java.util.Calendar`类。Java 8的API更简洁易用,而`Calendar`类则适用于旧版本的Android系统。确保在使用时注意日期时间格式的正确处理,...

    JAVA时间工具类(计算法定工作日工时等)

    JAVA时间工具类(计算法定工作日工时):计算某个日期加上几个工作日后的一个工作日期(除周末和法定节假日),计算某个日期后一天的工作日期(除周末和法定节假日),计算两个日期的真实工作日(除周末和法定节假日),...

    Java实现:月,日,年,周,访问量统计

    `java.time.temporal.ChronoUnit`类提供了一些静态方法来计算两个日期之间的差距,如`between`方法可以用来计算两个日期之间相隔的天数、周数或月数。 8. **数据可视化**:统计结果可能需要以图表的形式展示,如...

    JAVA日期操作汇总

    6. 计算两个日期之间的间隔。 #### 1. 计算某个月份的最大天数 在Java中,可以通过`Calendar`类来获取某个月份的最大天数。这通常涉及到一些基本的操作步骤: ```java Calendar time = Calendar.getInstance(); ...

    java 显示一周各星期的名称

    在Java 8及以上版本,我们可以使用`DayOfWeek`枚举类来获取一周中的每一天的名称。以下是关于这个主题的详细知识: 1. **`DayOfWeek`枚举类**: Java 8引入了`java.time.DayOfWeek`枚举,它表示一周中的七天,从1...

    java日期处理大全

    #### 五、计算两个日期之间的时间差 通过Calendar对象的`getTimeInMillis()`方法获取毫秒级时间戳,然后相减得到两个日期间的时间差,最后除以相应的单位(秒、分钟、小时等)转换为所需的格式。 ```java public ...

    Java8时间和日期API20例Java开发Java经验技

    在实际开发中,这些类和接口可以用来解决很多常见的时间和日期问题,例如计算两个日期之间的差值、判断日期是否在某个范围内、获取当前时间等。通过熟练掌握 Java 8 的时间和日期 API,可以编写出更简洁、易读的代码...

    日期类的加减及java中所以日期类的操作算法大全

    此外,比较两个日期也很常见,可以通过将日期转换为毫秒数来进行比较: ```java Date date1 = new Date(); Date date2 = new Date(); if (date1.getTime() > date2.getTime()) { System.out.println("date1 is ...

    DateUtils Java时间工具类

    非常好用的Date工具类 1、计算两个日期之间相差的天数 2、判断日期是否为周六日 3、获取当前周开始日期 4、获取当前周结束日期 5、判断年份是否是闰年 6、根据年份和月份计算天数 7、判断日期为该年的第几周 等等

    java根据日期计算年龄和星期

    这段代码首先创建了一个`Calendar`实例,并设置了指定的日期,然后通过`get`方法获取了这个日期是一周中的哪一天。 ##### 2.3 获取当前星期 除了计算具体日期对应的星期,有时还需要获取当前星期的起始日期。这可以...

    java日期计算

    要计算两个日期之间的间隔天数,可以通过以下步骤来实现: 1. 首先确保两个日期对象是按照先后顺序排列的。 2. 使用`getTimeInMillis()`方法获取每个日期的时间戳(毫秒数)。 3. 计算两个时间戳之间的差值,然后...

    根据年月日计算周日期的小程序

    在这个小程序中,可能会使用到`java.time.LocalDate`来表示年月日,然后结合`java.time.temporal.ChronoUnit`来计算两个日期之间的周数差,从而得到输入日期所在的一周。 控制台是用户与程序交互的简单界面,通常在...

    Java获取各种常用时间方法

    对于计算两个日期之间的天数差,可以通过转换为`java.util.Date`类型并计算两者之间的时间差,然后转换为天数。示例代码如下: ```java public static String getTwoDay(String sj1, String sj2) { ...

    java日历及贷款计算器

    3. **DayOfWeek枚举**: 自Java 8开始,`java.time.DayOfWeek`枚举类提供了对一周七天的直接访问,这使得处理星期几变得更为简单。 4. **日期运算**: Calendar类支持日期运算,如加减年、月、日、小时等。通过`add()...

Global site tag (gtag.js) - Google Analytics