Indeed LocalDate is the answer to the problem, but the first day of
week/last day of week is simpler:
YearMonthDay today = new YearMonthDay();
LocalDate todayLD = today.toLocalDate();
LocalDate firstDOW = todayLD.dayOfWeek().withMinimumValue();
LocalDate lastDOW = todayLD.dayOfWeek().withMaximumValue();
Stephen
Matt Benson wrote:
> YearMonthDay is almost deprecated. Converting to
> LocalDate made this pretty easy:
>
> YearMonthDay today = new YearMonthDay();
> LocalDate todayLd = new LocalDate(today);
> int dow = todayLd.getDayOfWeek();
> LocalDate firstOfWeek = todayLd.minusDays(dow);
> LocalDate lastOfWeek = firstOfWeek.plusDays(
> DateTimeConstants.DAYS_PER_WEEK);
>
> DateTimeFormatter dtf = DateTimeFormat.fullDate();
> System.out.println("beginning of this week is " +
> + dtf.print(firstOfWeek)
> + "; end of this week is " + dtf.print(
> lastOfWeek));
>
> br,
> Matt
>
> --- "Neil.Martin" <[EMAIL PROTECTED]>
> wrote:
>
>
>>I realized my problem was trying to do things using
>>YearMonthDay objects.
>>Converting to DateTime objects makes it easier:
>>
>> int daysToEndOfWeek;
>> daysToEndOfWeek = 7 -
>>
>
> getTargetDate().toDateTimeAtMidnight().getDayOfWeek();
>
>> return
>>getTargetDate().plus(Period.days(daysToEndOfWeek));
>>
>> int daysToStartOfWeek;
>> daysToStartOfWeek =
>>
>
> getTargetDate().toDateTimeAtMidnight().getDayOfWeek()
>
>>- 1;
>> return
>>
>
> getTargetDate().minus(Period.days(daysToStartOfWeek));
>
>>
>>-----Original Message-----
>>From: Neil.Martin
>>Sent: Thursday, November 09, 2006 2:11 PM
>>To: [email protected]
>>Subject: [Joda-interest] Question: how do you find
>>the first day of the week
>>given an arbi trary date.
>>
>>If a date is specified as a YearMonthDay, is there
>>some way to determine the
>>dates for the beginning and end of that week?
>>
>>For example 2006-11-09 is a Thursday. The beginning
>>of the week using the
>>Gregorian chronology is Monday 2006-11-06 and the
>>end of the week is Sunday
>>2006-11-12. My question is how would I derive
>>2006-11-06 (the start of the
>>week) and 2006-11-12 (the end of the week) given
>>2006-11-09 (or any of
>>2006-11-06 to 2006-11-12)?
>>
>>What I had planned on doing was to first figure out
>>the day of the week that
>>the given date fell on.
>>Once I know what day of the week it is, I can figure
>>out how many days it is
>>after Monday and before Sunday.
>>Then I can generate the date for the Monday and
>>Sunday by creating a new
>>YearMonthDay from the given YearMonthDay and
>>offsetting by a Period of the
>>given number of days.
>>
>>However I can't figure out how to get the given
>>dates day of the week as an
>>integer. The closest I can seem to get is the
>>following:
>>
>>YearMonthDay ymd;
>>ymd = new YearMonthDay(2006, 11, 9);
>>X = ymd.getChronology().dayOfWeek();
>>
>>This gives the day of the week as a DateTimeField
>>but there doesn't seem to
>>be a way to determine what day of the week that
>>DateTimeField actually is.
>>The only int values I can seem to get from the
>>DateTimeField (X) are
>>getMaximumValue() and getMinimumValue(), but these
>>don't help figure out
>>what the current value of the field is. There does
>>not appear to be any
>>getValue() method that returns an int. There are
>>constants in
>>DateTimeConstants for MONDAY, TUESDAY, ... and
>>SUNDAY which are of type int.
>>There don't seem to be any constants for the days of
>>the week that are
>>DateTimeFields.
>>
>>Am I on the right track? Did I miss some method
>>that makes this easy? Can
>>someone offer a simple solution?
>>
>>Neil.
>>
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Joda-interest mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/joda-interest