如何从java中的当前日期确定一周 [英] how to identify the week from current date in java

查看:152
本文介绍了如何从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



JodaTime



  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 cal = Calendar.getInstance(); 
cal.setFirstDayOfWeek(Calendar.SUNDAY);
cal.set(Calendar.DAY_OF_WEEK,Calendar.SUNDAY);

今天Calendar = 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


I want to identity the whole week date(From Sunday To Saturday) using current date in java.

For Example: Today is Tuesday - it means I need dates for Tuesday, Monday and Sunday.

If current day is Wednesday - then I need dates from Sunday to Wednesday.

How to achieve this logic in java?

I'm able to get the start of week from current date, but I don't know how to get the remaining day date from Week start date. Is there any java utility available for this?

解决方案

For reference, the current date used to formulate the output was Wednesday, 22nd July, 2015 (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);
}

Prints

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

As an alternative

(Which will basically work for all the other mentioned APIs) you could simply walk backwards from today...

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

Prints

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

JodaTime

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

Prints

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

Calendar

As a last resort. Remember though, Calendar carries time information, so using before, after and equals may not always do what you think they should...

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

Prints

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中的当前日期确定一周的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆