给定一个java.util.Date对象,返回开始日期的一周

问题描述:

我有一个要求,我不能使用JodaDate/Time。我需要使用java.util.Date,并需要一个返回一周的开始日期的函数。给定一个java.util.Date对象,返回开始日期的一周

签名的功能:

public java.util.Date getWeekStart(java.util.Date date) 

我可以假设的是,一周上周日开始。我做了足够的研究,但所有解决方案都在JodaDate上。我可以单独使用java.util.Date吗?

+0

[获取本周的第一个日期](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

尝试下面的代码:

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(); 
} 

它将返回一周的第一天。