给定一个java.util.Date对象,返回开始日期的一周
问题描述:
我有一个要求,我不能使用JodaDate/Time。我需要使用java.util.Date,并需要一个返回一周的开始日期的函数。给定一个java.util.Date对象,返回开始日期的一周
签名的功能:
public java.util.Date getWeekStart(java.util.Date date)
我可以假设的是,一周上周日开始。我做了足够的研究,但所有解决方案都在JodaDate上。我可以单独使用java.util.Date
吗?
答
尝试下面的代码:
public static Date getWeekStart(Date date){
Calendar c = Calendar.getInstance();
c.setTime(date);
int dayOfWeek = c.get(Calendar.DAY_OF_WEEK) - c.getFirstDayOfWeek();
c.add(Calendar.DAY_OF_MONTH, -dayOfWeek);
Date firstDate = c.getTime();
return firstDate;
}
Input
为当前日期,会造成以下的输出: 输出:
Sun Oct 26 11:46:26 IST 2014
在这里的挖掘是其访问使用Calender
更多this链接。
答
您可以使用calander类,这很容易,更灵活。检查下面的功能。可能它会帮助你。
public Date getFirstDayOfWeek(Date date){
Calendar cal=Calendar.getInstance();
cal.setTime(date);
// cal.setFirstDayOfWeek(1); //No need to set , if it is as per local, 1 for sunday and so on.
cal.set(Calendar.DAY_OF_WEEK, cal.getFirstDayOfWeek());
return cal.getTime();
}
它将返回一周的第一天。
[获取本周的第一个日期](http://*.com/questions/10119782/fetch-the-first-date-of-the-week)和[this](http:/ /*.com/q/2109145/642706)和[this](http://*.com/q/2937086/642706)和[this](http://*.com/q/15503105/642706)以及[this](http://*.com/q/9307884/642706)和[this](http://*.com/q/3023267/642706)等等。 – 2014-11-02 01:21:36