如何判断两个时间是否是从周一开始到周日结束

问题描述

弱弱的请教下: 如何判断两个时间是否在同一周,(周一是开始,周日是结束)?

解决方案

import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;public class Test {private static final DateFormat datetimeDf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");/** * @param args */public static void main(String[] args) {try {// 定义两个时间String dateStr1 = "2010-01-27 00:00:00";String dateStr2 = "2010-01-30 23:59:59";Date date1 = datetimeDf.parse(dateStr1);Date date2 = datetimeDf.parse(dateStr2);// 比较System.out.println(Test.compare(date1, date2) ? "两个时间在同一周" : "两个时间不在同一周");} catch (ParseException e) {e.printStackTrace();}}/** * 判断两个时间是否在同一周 * * @param firstDate * @param secondDate * @return * @throws ParseException */public static boolean compare(Date firstDate, Date secondDate) throws ParseException {/** 以下先根据第一个时间找出所在周的星期一、星期日, 再对第二个时间进行比较 */Calendar calendarMonday = Calendar.getInstance();calendarMonday.setTime(firstDate);// 获取firstDate在当前周的第几天. (星期一~星期日:1~7)int monday = calendarMonday.get(Calendar.DAY_OF_WEEK);if (monday == 0) monday = 7;// 星期一开始时间calendarMonday.add(Calendar.DAY_OF_MONTH, - monday + 1);calendarMonday.set(Calendar.HOUR, 0);calendarMonday.set(Calendar.MINUTE, 0);calendarMonday.set(Calendar.SECOND, 0);// 星期日结束时间Calendar calendarSunday = Calendar.getInstance();calendarSunday.setTime(calendarMonday.getTime());calendarSunday.add(Calendar.DAY_OF_MONTH, 6);calendarSunday.set(Calendar.HOUR, 23);calendarSunday.set(Calendar.MINUTE, 59);calendarSunday.set(Calendar.SECOND, 59);System.out.println("星期一开始时间:" + datetimeDf.format(calendarMonday.getTime()));System.out.println("星期日结束时间:" + datetimeDf.format(calendarSunday.getTime()));// 比较第二个时间是否与第一个时间在同一周if (secondDate.getTime() >= calendarMonday.getTimeInMillis() && secondDate.getTime() <= calendarSunday.getTimeInMillis()) {return true;}return false;}}
解决方案二:
你取date在一年中的周数啊,周数相等。不就OK了
解决方案三:
Calendar c = Calendar.getInstance();c.add(Calendar.DAY_OF_MONTH,-1); int week = c.get(c.WEEK_OF_MONTH);System.out.println(week);两天的week值一致,表示在同一周,周一--周日.
解决方案四:
select 1 from dual where to_char(to_date('20110113','yyyymmdd'),'YYYYWW') = to_char(to_date('20110113','yyyymmdd'),'YYYYWW')
解决方案五:
(时间a.gettime-时间b.gettime)的绝对值<7天的毫秒数

时间: 2024-07-28 15:25:37

如何判断两个时间是否是从周一开始到周日结束的相关文章

JS判断两个时间大小的示例代码_javascript技巧

如下所示: 复制代码 代码如下:  function validTime(startTime,endTime){       var arr1 = startTime.split("-");       var arr2 = endTime.split("-");       var date1=new Date(parseInt(arr1[0]),parseInt(arr1[1])-1,parseInt(arr1[2]),0,0,0);        var da

java计算两个时间相差天数的方法汇总_java

问题描述: 输入:两个日期 输出:两个日期相差的天数 具体代码实现 方法1: 通过Calendar类的日期比较.注意:这里需要考虑一下: 日期是跨年份的,如一个是2012年,一个是2015年的 年份是分闰年和平年的,各自的天数不同 /** * date2比date1多的天数 * @param date1 * @param date2 * @return */ public static int differentDays(Date date1,Date date2) { Calendar cal

本函数计算两个时间的差[原创]

函数|原创 '******************************'||Function TimeDiff(sBegin, sEnd)'||本函数计算两个时间的差,可以不用更改直接使用'||作者:machinecat 2001/10/26'****************************** '******************************'注:首先需要判断用户输入的sBegin与sEnd之间的大小'可以通过DataDiff函数获得两者之间的时间差,不需要进行复杂的

本函数计算两个时间的差

函数 '******************************'||Function TimeDiff(sBegin, sEnd)'||本函数计算两个时间的差,可以不用更改直接使用'||作者:machinecat 2001/10/26'****************************** '****************************** '注:首先需要判断用户输入的sBegin与sEnd之间的大小 '可以通过DataDiff函数获得两者之间的时间差,不需要进行复杂的时

PHP中比较两个时间的大小与日期的差值

在这里我们全用到时间戳 mktime(hour,minute,second,month,day,year,[is_dst])     其参数可以从右向左省略,任何省略的参数都会被设置成本地日期和时间的当前值.     参数 描述 hour 可选.规定小时. minute 可选.规定分钟. second 可选.规定秒. month 可选.规定用数字表示的月. day 可选.规定天. year 可选.规定年.在某些系统上,合法值介于 1901 – 2038 之间.不过在 php教程 5 中已经不存在

js计算两个时间之间天数差的实例代码_javascript技巧

复制代码 代码如下: //判断是否为闰年function isLeapYear(year){if(year % 4 == 0 && ((year % 100 != 0) || (year % 400 == 0))){     return true;}return false;}//判断前后两个日期function validatePeriod(fyear,fmonth,fday,byear,bmonth,bday){if(fyear < byear){return true;}el

经典算法面试题目-判断两个字符串是否是变位词(1.4)

题目 Write a method to decide if two strings are anagrams or not. 写一个函数判断两个字符串是否是变位词. 解答 变位词(anagrams)指的是组成两个单词的字符相同,但位置不同的单词. 比如说, abbcd和abcdb就是一对变位词. 也就是说,2个字符串,不管排列顺序如何,只要全部的单个字符能对应上,就是一对变位词! 该题目有两种做法: 时间复杂度为O(nlogn)的解法 由于组成变位词的字符是一模一样的,所以按照字典序排序后,两

java 判断两个时间段是否有交集

/* 开始时间 */ Date leftStartDate = feesPreferential.getPreferentialStartTime(); /* 结束时间 */ Date leftEndDate = feesPreferential.getPreferentialEndTime(); /*比较的时间段*/ Date rightStartDate = (Date) feesPreferentialList.get(i).get("preferentialStartTime"

源码:判断两种颜色值是否为相似颜色

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="gb2312"> <head> <head&g