如何获取给定日期java的所有周日期

时间:2015-07-17 02:23:42

标签: java date

我有一个约会,如何让所有日期落在给定日期属于java的那一周?

WITH
CTE
AS
(
  SELECT StudyCode, BatchCode, CondNumber
  FROM PullPointDate
  GROUP BY StudyCode, BatchCode, CondNumber
)
SELECT * 
FROM
  CTE
  CROSS APPLY
  (
    SELECT TOP(1) PullPoint.PullUnit, PullPoint.PullPeriod
    FROM PullPoint
    WHERE PullPoint.BatchCode = CTE.BatchCode
    ORDER BY PullPoint.AuditNumber DESC
  ) AS CA
;

有些人可以帮我这个。

我想知道给定日期的星期日期,我已解释为什么这个问题不重复,请在评论前阅读。

3 个答案:

答案 0 :(得分:12)

您可以尝试以下方式,

Calendar cal = Calendar.getInstance();
//cal.setTime(new Date());//Set specific Date if you want to

for(int i = Calendar.SUNDAY; i <= Calendar.SATURDAY; i++) {
    cal.set(Calendar.DAY_OF_WEEK, i);
    System.out.println(cal.getTime());//Returns Date
}

<强> 输出

Sun Jul 12 08:12:38 IST 2015
Mon Jul 13 08:12:38 IST 2015
Tue Jul 14 08:12:38 IST 2015
Wed Jul 15 08:12:38 IST 2015
Thu Jul 16 08:12:38 IST 2015
Fri Jul 17 08:12:38 IST 2015
Sat Jul 18 08:12:38 IST 2015

答案 1 :(得分:3)

    Calendar calendar = Calendar.getInstance();
    int offset = calendar.get(Calendar.DAY_OF_WEEK) - 1;

    calendar.add(Calendar.DATE, -offset);

    for(int i = 0; i < 7; i++){
        System.out.println(calendar.getTime());
        calendar.add(Calendar.DATE, 1);
    }

答案 2 :(得分:2)

纯Java 8 / java.time方式

基于thisthis

public static List<LocalDate> datesOfWeekDate(LocalDate date) {
    LocalDate monday = date
            .with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY));

    return IntStream.range(0, 7).mapToObj(monday::plusDays).collect(toList());
}