gpt4 book ai didi

java - 如何在java中识别当前日期的星期

转载 作者:行者123 更新时间:2023-12-01 07:22:39 27 4
gpt4 key购买 nike

我想使用java中的当前日期来识别整周的日期(从周日到周六)。

例如:今天是星期二 - 这意味着我需要星期二、星期一和星期日的日期。

如果当天是星期三 - 那么我需要从星期日到星期三的日期。

如何用java实现这个逻辑?

我可以从当前日期获取一周的开始日期,但我不知道如何从周开始日期获取剩余的日期。有没有可用的 java 实用程序?

最佳答案

作为引用,用于制定输出的当前日期是 2015 年 7 月 22 日星期三 (22/07/2015)

Java 8

LocalDate ld = LocalDate.now();
LocalDate sunday = ld.minusDays(ld.getDayOfWeek().getValue());
LocalDate tommorrow = ld.plusDays(1);
LocalDate date = sunday;
while (date.isBefore(tommorrow)) {
System.out.println(date);
date = date.plusDays(1);
}

打印

2015-07-19
2015-07-20
2015-07-21
2015-07-22

作为替代方案

(这基本上适用于所有其他提到的 API)您可以简单地从今天开始倒退...

LocalDate date = LocalDate.now();
do {
System.out.println(date);
date = date.minusDays(1);
} while (date.getDayOfWeek() != DayOfWeek.SATURDAY);

打印

2015-07-22
2015-07-21
2015-07-20
2015-07-19

乔达时间

LocalDate now = LocalDate.now();
LocalDate sunday = now.minusDays(5).withDayOfWeek(DateTimeConstants.SUNDAY);
LocalDate tommorrow = now.plusDays(1);
LocalDate date = sunday;
while (date.isBefore(tommorrow)) {
System.out.println(date);
date = date.plusDays(1);
}

打印

2015-07-19
2015-07-20
2015-07-21
2015-07-22

日历

作为最后的手段。但请记住,Calendar 携带时间信息,因此使用 beforeafterequals 可能并不总是如您所想他们应该...

Calendar cal = Calendar.getInstance();
cal.setFirstDayOfWeek(Calendar.SUNDAY);
cal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);

Calendar today = Calendar.getInstance();

while (cal.before(today)) {
System.out.println(cal.getTime());
cal.add(Calendar.DATE, 1);
}

打印

Sun Jul 19 15:01:49 EST 2015
Mon Jul 20 15:01:49 EST 2015
Tue Jul 21 15:01:49 EST 2015
Wed Jul 22 15:01:49 EST 2015

关于java - 如何在java中识别当前日期的星期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31553948/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com