计算出给定日期所在周的周一和周日
结果类:
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 /** * 取得给定日期所在周的开始日期和结束日期 * @param string $gdate 日期,默认为当天,格式:YYYY-...
Java实现给定日期计算星期几。通过给定****-**-**的格式来计算星期几。
写一个程序,输入-一个日期(年、月、...为星期日) W = (d+2*m+3*(m+ 1)/5+y+y/4- y/100+y/400) mod 7 (要求将1、2月当作上一-年的13、14月来 计算) 三、完成nextdate程序开发,理解软件测试 的必要性。 (1) WinFrom程序
S7-SCL - 可用于从给定日期或者 CPU 硬件时钟的当前日期确定日历日和日历周的工具
c++面向对象实现计算给出的一个日期的下一天
主要介绍了Python自定义函数计算给定日期是该年第几天的方法,结合具体实例形式分析了Python日期时间计算相关操作技巧,需要的朋友可以参考下
C语言带参宏替换计算给定年份的二月天数,供初学者参考
精确计算日期物理差(计算给定的两个日期间的物理年月日时分秒差),参照日期使用DateTime的AddYears,AddMonths,AddDays,AddHours,AddMinutes,AddSeconds可精确回到计算日期
一、给定一个日期值,求出此日期所在星期的星期一和星期天的日期数据 例如给定一个日期 2010-09-01,求出它所在星期的星期一是2010-08-30,星期天是2010-09-05 Function创建如下: 代码如下: USE [MSSQL] GO SET ANSI...
返回给定日期当月的第一天和最后一天的日期
编程任务:对于给定的由n 行数字组成的数字三角形,编程计算从三角形的顶至底的路径经过的数字和的最大值。 Input 输入数据是由多组测试数据组成。第1 行是数字三角形的行数n,1≤n≤100。接下来n行是数字三角形...
sql 获取给定日期是一年中的第几周,将默认上一年最后一周改为当前年第0周。
C语言程序设计-计算并输出给定整数n的所有因子之和(不包括1与自身);注意:n的值不大于1000;例如:n的值为855时,应输出704;
输入任意日期(年月日),根据Zeller公式,利用matlab来计算是星期几
MATLAB 输入起始日期和天数,计算天数对应日期和星期几
试设计一个算法,计算出从三角形 的顶至底的一条路径,使该路径经过的数字总和最大。 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 编程任务: 对于给定的由n 行数字组成的数字三角形,编程计算从三角形的顶至底的路径...
计算日期A为星期几,先找一个知道为星期几的参照日期B,通过计算A和B的相差天数,就可计算出日期A星期几。 例:日期综合运算。 #include #include /*日期结构体*/ struct date { int year; int month; int...
带参宏替换计算给定年份的二月天数_C语言_带参宏替换计算给定年份的二月天数_chapterbgn_源码.rar
C语言程序设计-计算并输出给定整数的所有因子之积(包括自身);规定这个整数的值不大于50;