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`包,这个...
这个功能可能封装在一个名为`getNthWorkingDay()`的方法中,它接受两个参数:一个日期字符串和一个整数n,表示n个工作日后的日期。这个方法需要考虑到节假日和周末,如果遇到节假日则跳过,直到找到第n个工作日。...
Swing提供了JCalendar和JDatePicker这两个常用的日期选择组件,它们使得用户能够方便地在日历视图中选择日期,或者通过一个文本框和下拉小部件选择日期和时间。 1. **JCalendar**: 这是一个第三方组件,通常由`...
在Java中,计算两个日期之间的天数通常涉及以下几个步骤: 1. 创建`Calendar`实例:首先,通过调用`Calendar.getInstance()`方法获取一个`Calendar`对象,这会返回一个默认的`GregorianCalendar`实例,因为Java默认...
总结,获取Android中一周每一天的日期,你可以利用Java 8的`java.time`包或`java.util.Calendar`类。Java 8的API更简洁易用,而`Calendar`类则适用于旧版本的Android系统。确保在使用时注意日期时间格式的正确处理,...
在 Java 语言中,计算两个日期之间的工作日时间是一个常见的需求,特别是在需要排除周末和法定节假日的情况下。本文将通过一个示例代码,详细介绍如何计算两个日期之间的工作日时间,排除周末和法定节假日。 首先,...
JAVA时间工具类(计算法定工作日工时):计算某个日期加上几个工作日后的一个工作日期(除周末和法定节假日),计算某个日期后一天的工作日期(除周末和法定节假日),计算两个日期的真实工作日(除周末和法定节假日),...
`java.time.temporal.ChronoUnit`类提供了一些静态方法来计算两个日期之间的差距,如`between`方法可以用来计算两个日期之间相隔的天数、周数或月数。 8. **数据可视化**:统计结果可能需要以图表的形式展示,如...
6. 计算两个日期之间的间隔。 #### 1. 计算某个月份的最大天数 在Java中,可以通过`Calendar`类来获取某个月份的最大天数。这通常涉及到一些基本的操作步骤: ```java Calendar time = Calendar.getInstance(); ...
在Java 8及以上版本,我们可以使用`DayOfWeek`枚举类来获取一周中的每一天的名称。以下是关于这个主题的详细知识: 1. **`DayOfWeek`枚举类**: Java 8引入了`java.time.DayOfWeek`枚举,它表示一周中的七天,从1...
#### 五、计算两个日期之间的时间差 通过Calendar对象的`getTimeInMillis()`方法获取毫秒级时间戳,然后相减得到两个日期间的时间差,最后除以相应的单位(秒、分钟、小时等)转换为所需的格式。 ```java public ...
在实际开发中,这些类和接口可以用来解决很多常见的时间和日期问题,例如计算两个日期之间的差值、判断日期是否在某个范围内、获取当前时间等。通过熟练掌握 Java 8 的时间和日期 API,可以编写出更简洁、易读的代码...
此外,比较两个日期也很常见,可以通过将日期转换为毫秒数来进行比较: ```java Date date1 = new Date(); Date date2 = new Date(); if (date1.getTime() > date2.getTime()) { System.out.println("date1 is ...
非常好用的Date工具类 1、计算两个日期之间相差的天数 2、判断日期是否为周六日 3、获取当前周开始日期 4、获取当前周结束日期 5、判断年份是否是闰年 6、根据年份和月份计算天数 7、判断日期为该年的第几周 等等
这段代码首先创建了一个`Calendar`实例,并设置了指定的日期,然后通过`get`方法获取了这个日期是一周中的哪一天。 ##### 2.3 获取当前星期 除了计算具体日期对应的星期,有时还需要获取当前星期的起始日期。这可以...
要计算两个日期之间的间隔天数,可以通过以下步骤来实现: 1. 首先确保两个日期对象是按照先后顺序排列的。 2. 使用`getTimeInMillis()`方法获取每个日期的时间戳(毫秒数)。 3. 计算两个时间戳之间的差值,然后...
在这个小程序中,可能会使用到`java.time.LocalDate`来表示年月日,然后结合`java.time.temporal.ChronoUnit`来计算两个日期之间的周数差,从而得到输入日期所在的一周。 控制台是用户与程序交互的简单界面,通常在...
对于计算两个日期之间的天数差,可以通过转换为`java.util.Date`类型并计算两者之间的时间差,然后转换为天数。示例代码如下: ```java public static String getTwoDay(String sj1, String sj2) { ...
3. **DayOfWeek枚举**: 自Java 8开始,`java.time.DayOfWeek`枚举类提供了对一周七天的直接访问,这使得处理星期几变得更为简单。 4. **日期运算**: Calendar类支持日期运算,如加减年、月、日、小时等。通过`add()...