Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Get last week date range for a date in Java

Tags:

java

datetime

Suppose I have a Date 20 June 2013

How can I get the Date range for the last week, ie in this case 9 June to 15 June.

Also if the date was 2nd June 2013

the range should be 26 may to 1 june

like image 551
Ryan Malhotra Avatar asked Jun 20 '13 10:06

Ryan Malhotra


1 Answers

this is Java Calendar based solution

    Date date = new Date();
    Calendar c = Calendar.getInstance();
    c.setTime(date);
    int i = c.get(Calendar.DAY_OF_WEEK) - c.getFirstDayOfWeek();
    c.add(Calendar.DATE, -i - 7);
    Date start = c.getTime();
    c.add(Calendar.DATE, 6);
    Date end = c.getTime();
    System.out.println(start + " - " + end);

output

Mon Jun 10 13:22:01 EEST 2013 - Sun Jun 16 13:22:01 EEST 2013

it's localized, in my Locale week starts with Monday

like image 51
Evgeniy Dorofeev Avatar answered Sep 28 '22 03:09

Evgeniy Dorofeev