当前位置: 首页 > 面试题库 >

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

田兴朝
2023-03-14
问题内容

我想使用Java中的当前日期来标识整个星期的日期(从星期日到星期六)。

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

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

如何在Java中实现此逻辑?

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


问题答案:

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

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进行时间信息,因此使用beforeafter并且equals可能不总是做你认为他们应该…

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


 类似资料:
  • 问题内容: 我已经实现了一种获取当前星期中星期一的日期的方法,并且已经将星期一指定为星期的第一天。 但是,无论我做什么,它都会返回2013年3月24日格林尼治标准时间。我看不到这里的问题。有人能帮忙吗? 问题答案: 试试这个 :

  • 问题内容: 我目前有此代码: 这是Date对象的扩展。 我需要做同样的事情,但是让日历返回我从星期一开始而不是星期日的一周中的几天。 问题答案: 您只需要使用iso8601日历获取一周中的第一天,其中第一个工作日为星期一,并添加0至6天。尝试这样:

  • 问题内容: 我想从Java中的当前日期减去n天。 我怎么做? 问题答案: 您不必使用日历。您可以只使用时间戳记: 更新 不要忘记在1000年底之前长时间添加“ l”。 请考虑以下警告: 在java秒,夏令时等情况下,将毫秒添加到Java日期中将使原始日期增加零天或两天。如果您需要100%确定仅添加一天,则此解决方案不可用。

  • 问题内容: 我已经进行了所有设置,将当前日期存储到Java中的变量中。我要弄清楚的是如何存储当前日期之后1年的日期。 这是我当前的日期: 因此,例如,如果今天是今天,它将存储2/18/2013。我正在尝试存储日期2/18/2014。我将如何去做呢? 问题答案: 如果您不想拖动外部库,只需使用 请注意,如果日期是,并且您添加了1年,则将获得

  • 问题内容: 如何获得当前一周的星期一和星期五的日期? 我有以下代码,但是如果当前日期是星期日或星期六,则它将失败。 问题答案: 这些strtotime输入效果很好: 您需要做的就是将逻辑包装在一些if语句中。

  • 问题内容: 我们有一个实用程序,它将在周一至周五之间的任何一天运行。它将在内容管理工具中更新一些文件。与该文件关联的最后修改日期应该是该周的星期一日期。我编写了以下程序来检索当前周的星期一日期。但是我仍然不确定这是否适用于所有情况。有谁有更好的解决方案? 问题答案: 我强烈建议您改用Joda Time(对于您的所有日期/时间工作,而不仅限于此): 请注意,正如您在此处所使用的 星期一 (即Joda