`
www-hello
  • 浏览: 100687 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

计算出给定日期所在周的周一和周日

阅读更多

计算出给定日期所在周的周一和周日

 

结果类:

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
 

 

分享到:
评论
1 楼 xiaowugegzh 2011-10-17  
写的不错,QQ 418416015,聊聊技术啊,呵呵

相关推荐

    获取当前日期所在周一和周末,月头和月末

    根据给定文件的信息,我们可以总结出以下几个重要的知识...综上所述,这些代码片段为我们提供了获取当前日期所在周一、周末以及月头和月末的有效方法。通过对这些方法的理解和运用,可以更好地处理日期相关的逻辑问题。

    php计算给定日期所在周的开始日期和结束日期示例

    本示例主要讲解如何使用PHP计算给定日期所在周的开始日期和结束日期。这个功能在数据分析、日程管理或者报告生成等场景中非常有用。 首先,我们要了解PHP中的日期函数,如`date()`和`strtotime()`。`date()`函数...

    计算周次(未规定每年第一天是属于第一周)

    这个主题涉及到了编程逻辑和日期处理,其中的核心在于如何根据特定的规则来确定一年中的第一周,并以此为基础计算出任何给定日期所在的周次。在本案例中,我们关注的是一个动态设置判断条件和每周第一天的算法。 ...

    计算日期是该年的第几周

    下面是一个示例代码,演示了如何计算给定日期是当年的第几周: ```csharp using System; public class Program { public static void Main() { DateTime date = new DateTime(2023, 2, 15); // 任意日期 ...

    SQL Server各种日期计算

    例如,如果我们要计算三天后的日期或者今年的第一个星期日,就可以使用DATEADD函数。 在SQL Server中,默认情况下,日期的开始是1900年1月1日,时间的开始是00:00:00.000。因此,很多日期相关的计算都会以这个时间...

    java 采用单例模式计算当年有多少个周,并列出所有周以及每一个周所对应的时间段(内含注释)

    根据给定文件的信息,本文将详细解析如何使用Java语言及单例模式来计算并列出一年中的所有周及其对应的时间段,同时也会展示如何获取当前日期及其所在周。 ### 一、单例模式简介 单例模式是一种常用的软件设计模式...

    SQL 判断给定日期值(或时间段)所在星期的星期一和星期天的日期

    这个函数通过以下步骤找到给定日期所在的星期一和星期天: 1. 使用`DATEDIFF(wk, 0, @tmpDate)`计算从1900年1月1日(日期0)到`@tmpDate`的星期数。 2. 将这个星期数传递给`DATEADD(wk, ... , 0)`,得到该日期所在...

    有关日期与周数的相互转换

    在处理日期和周数时,我们需要考虑的是日期所在星期的位置,以及如何根据这个位置来确定它是属于当前周还是下一周。 1. **日期转周数**: - 输入格式为 YYYY/MM/DD。 - 首先计算出输入日期与该年1月1日之间的天数...

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

    我们可以先获取指定日期所在周的周一,然后计算与该周日的差距。如果差值小于等于3(因为一周的最后三天是周六、周日和下周一),则说明该日期在本周的最后几天。 3. **判断日期是否在某一周内的前几天**: 类似...

    java 日期转化计算

    根据给定文件的信息,本文将深入探讨Java中与日期转换及计算相关的几个核心知识点:如何计算当前日期是年度中的第几周、确定某天是一周中的哪一天、日期的格式化处理、获取指定年份月份的具体日期以及如何获得当前...

    PHP判断两个给定日期是否在同一周的方法

    在PHP中判断两个给定日期是否属于同一周,涉及到的主要知识点包括日期时间的表示、转换以及时间的运算和判断。日期时间在计算机中常常以时间戳(timestamp)的形式存在,而在PHP中,更常用的是时间戳和可读的日期...

    周月起止时间计算

    下面是一个简单的示例代码片段,展示了如何计算给定日期所在周和月的起止时间: ```cpp #include void GetWeekAndMonthRange(COleDateTime date) { // 计算周的起止时间 COleDateTime startOfWeek(date); int ...

    shell 计算日期

    - **功能**: 输入一个日期字符串(格式为YYYYMMDD),输出该日期是一周中的第几天(0表示周日,1表示周一,以此类推)。 - **实现方法**: 使用`cal`命令获取指定月份的日历,然后通过`awk`进行处理来计算出日期是一...

    mysql日期和时间格式转

    第一个参数为日期,第二个参数可选,用来指定一周的第一天是周日还是周一,默认为周日。 - **示例**: ```sql SELECT WEEK('1998-02-20'); -- 返回 7 SELECT WEEK('1998-02-20', 1); -- 返回 8 ``` #### YEAR ...

    oracle数据库时间转换和时间算法.docx

    - `TRUNC(date, 'W')`:返回给定日期所在周的周一,但注意,Oracle 默认的 'W' 参数会根据 NLS_DATE_LANGUAGE 设置返回周的开始日。 - `TRUNC(date, 'D')`:返回给定日期的当周第一天,即星期一开始的一天。 - `...

    java周算法.pdf

    文档中的`getWeekOfYear`方法用于计算给定日期所在的年份中的周数。为了计算周数,首先设置了`Calendar`对象的星期的第一天为周一,并设置一年中第一周至少包含的天数为7天。然后,将日期设置到`Calendar`对象中,并...

    黑色星期五黑色星期五

    给定一个整数 y,代表所关心的年份,再给定一个整数 w,代表该年度 1 月 1 日的星期数(周一至周六以 1 到 6 表示,周日以 7 表示)。请输出该年度,分别有哪些月份存在黑色星期五。注意不要忽略 y为闰年的情况。

    java中队日期的操作

    `getFirstDayOfWeek`方法返回给定日期所在周的第一天。通过`Calendar`的`setFirstDayOfWeek`方法,我们可以定义一周的起始日。然后,使用`get(Calendar.DAY_OF_WEEK)`获取当前日期是一周中的哪一天,再根据一周的...

    一个用来计算整星期日期的功能代码

    这通常涉及到计算给定日期与周内某个基准点(如周一)的差值。 4. 整周日期的递增:如果要求计算距离当前日期整周的日期,就需要判断当前日期与最近周的起点(如本周一)的间隔,然后据此计算出未来或过去的整周...

Global site tag (gtag.js) - Google Analytics