计算出给定日期所在周的周一和周日
结果类:
import java.util.Date;
public class Week {
private Date date; //日期
private Date start; //date所在周的第一天(星期一)
private Date end; //date所在周的最后一天(星期日)
public Week(Date date){
this.date = date;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
public Date getStart() {
return start;
}
public void setStart(Date start) {
this.start = start;
}
public Date getEnd() {
return end;
}
public void setEnd(Date end) {
this.end = end;
}
}
工具方法:
import org.apache.commons.lang.time.DateUtils;
/**
* 计算出给定日期所在周的周一和周日
*
* @param date
* @return
* @throws ParseException
*/
public static Week getWeekByDate(Date date) throws ParseException {
Date _date = DateUtils.truncate(date, Calendar.DAY_OF_MONTH);
Calendar c = Calendar.getInstance();
c.setTime(_date);
// 星期:1,2,3,4,5,6,7
int iWeek = c.get(Calendar.DAY_OF_WEEK);
//时期日->星期八
if(iWeek == 1){
iWeek = 8;
}
Week week = new Week(_date);
// 算出离星期一(2)的距离
week.setStart(DateUtils.addDays(_date, 2 - iWeek));
// 算出离星期日(8)的距离
week.setEnd(DateUtils.addDays(_date, 8 - iWeek));
return week;
}
测试代码:
public static void main(String[] args) throws Exception {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
Date date = DateUtils.parseDate("2011-05-11", new String[] { "yyyy-MM-dd" });
System.out.println("------" + df.format(date) + "------");
Week week = getWeekByDate(date);
System.out.println(df.format(week.getStart()));
System.out.println(df.format(week.getEnd()));
date = DateUtils.parseDate("2011-05-09", new String[] { "yyyy-MM-dd" });
System.out.println("------" + df.format(date) + "------");
week = getWeekByDate(date);
System.out.println(df.format(week.getStart()));
System.out.println(df.format(week.getEnd()));
date = DateUtils.parseDate("2011-05-15", new String[] { "yyyy-MM-dd" });
System.out.println("------" + df.format(date) + "------");
week = getWeekByDate(date);
System.out.println(df.format(week.getStart()));
System.out.println(df.format(week.getEnd()));
}
测试结果:
------2011-05-11 00:00:00 000------
2011-05-09 00:00:00 000
2011-05-15 00:00:00 000
------2011-05-09 00:00:00 000------
2011-05-09 00:00:00 000
2011-05-15 00:00:00 000
------2011-05-15 00:00:00 000------
2011-05-09 00:00:00 000
2011-05-15 00:00:00 000
分享到:
相关推荐
根据给定文件的信息,我们可以总结出以下几个重要的知识...综上所述,这些代码片段为我们提供了获取当前日期所在周一、周末以及月头和月末的有效方法。通过对这些方法的理解和运用,可以更好地处理日期相关的逻辑问题。
本示例主要讲解如何使用PHP计算给定日期所在周的开始日期和结束日期。这个功能在数据分析、日程管理或者报告生成等场景中非常有用。 首先,我们要了解PHP中的日期函数,如`date()`和`strtotime()`。`date()`函数...
这个主题涉及到了编程逻辑和日期处理,其中的核心在于如何根据特定的规则来确定一年中的第一周,并以此为基础计算出任何给定日期所在的周次。在本案例中,我们关注的是一个动态设置判断条件和每周第一天的算法。 ...
下面是一个示例代码,演示了如何计算给定日期是当年的第几周: ```csharp using System; public class Program { public static void Main() { DateTime date = new DateTime(2023, 2, 15); // 任意日期 ...
例如,如果我们要计算三天后的日期或者今年的第一个星期日,就可以使用DATEADD函数。 在SQL Server中,默认情况下,日期的开始是1900年1月1日,时间的开始是00:00:00.000。因此,很多日期相关的计算都会以这个时间...
根据给定文件的信息,本文将详细解析如何使用Java语言及单例模式来计算并列出一年中的所有周及其对应的时间段,同时也会展示如何获取当前日期及其所在周。 ### 一、单例模式简介 单例模式是一种常用的软件设计模式...
这个函数通过以下步骤找到给定日期所在的星期一和星期天: 1. 使用`DATEDIFF(wk, 0, @tmpDate)`计算从1900年1月1日(日期0)到`@tmpDate`的星期数。 2. 将这个星期数传递给`DATEADD(wk, ... , 0)`,得到该日期所在...
在处理日期和周数时,我们需要考虑的是日期所在星期的位置,以及如何根据这个位置来确定它是属于当前周还是下一周。 1. **日期转周数**: - 输入格式为 YYYY/MM/DD。 - 首先计算出输入日期与该年1月1日之间的天数...
我们可以先获取指定日期所在周的周一,然后计算与该周日的差距。如果差值小于等于3(因为一周的最后三天是周六、周日和下周一),则说明该日期在本周的最后几天。 3. **判断日期是否在某一周内的前几天**: 类似...
根据给定文件的信息,本文将深入探讨Java中与日期转换及计算相关的几个核心知识点:如何计算当前日期是年度中的第几周、确定某天是一周中的哪一天、日期的格式化处理、获取指定年份月份的具体日期以及如何获得当前...
在PHP中判断两个给定日期是否属于同一周,涉及到的主要知识点包括日期时间的表示、转换以及时间的运算和判断。日期时间在计算机中常常以时间戳(timestamp)的形式存在,而在PHP中,更常用的是时间戳和可读的日期...
下面是一个简单的示例代码片段,展示了如何计算给定日期所在周和月的起止时间: ```cpp #include void GetWeekAndMonthRange(COleDateTime date) { // 计算周的起止时间 COleDateTime startOfWeek(date); int ...
- **功能**: 输入一个日期字符串(格式为YYYYMMDD),输出该日期是一周中的第几天(0表示周日,1表示周一,以此类推)。 - **实现方法**: 使用`cal`命令获取指定月份的日历,然后通过`awk`进行处理来计算出日期是一...
第一个参数为日期,第二个参数可选,用来指定一周的第一天是周日还是周一,默认为周日。 - **示例**: ```sql SELECT WEEK('1998-02-20'); -- 返回 7 SELECT WEEK('1998-02-20', 1); -- 返回 8 ``` #### YEAR ...
- `TRUNC(date, 'W')`:返回给定日期所在周的周一,但注意,Oracle 默认的 'W' 参数会根据 NLS_DATE_LANGUAGE 设置返回周的开始日。 - `TRUNC(date, 'D')`:返回给定日期的当周第一天,即星期一开始的一天。 - `...
文档中的`getWeekOfYear`方法用于计算给定日期所在的年份中的周数。为了计算周数,首先设置了`Calendar`对象的星期的第一天为周一,并设置一年中第一周至少包含的天数为7天。然后,将日期设置到`Calendar`对象中,并...
给定一个整数 y,代表所关心的年份,再给定一个整数 w,代表该年度 1 月 1 日的星期数(周一至周六以 1 到 6 表示,周日以 7 表示)。请输出该年度,分别有哪些月份存在黑色星期五。注意不要忽略 y为闰年的情况。
`getFirstDayOfWeek`方法返回给定日期所在周的第一天。通过`Calendar`的`setFirstDayOfWeek`方法,我们可以定义一周的起始日。然后,使用`get(Calendar.DAY_OF_WEEK)`获取当前日期是一周中的哪一天,再根据一周的...
这通常涉及到计算给定日期与周内某个基准点(如周一)的差值。 4. 整周日期的递增:如果要求计算距离当前日期整周的日期,就需要判断当前日期与最近周的起点(如本周一)的间隔,然后据此计算出未来或过去的整周...