diff --git a/SOPE/NGCards/ChangeLog b/SOPE/NGCards/ChangeLog index 657305992..4af484a68 100644 --- a/SOPE/NGCards/ChangeLog +++ b/SOPE/NGCards/ChangeLog @@ -1,5 +1,10 @@ 2007-06-07 Wolfgang Sourdeau + * iCalDateTime.m ([iCalDateTime -setDate:dateTime]): take the date + passed as parameter as an all day date. + ([iCalDateTime -isAllDay]): new method determining whether the + current value is an all day value. + * NSString+NGCards.m ([NSString -isAllDayDate]): new method that determines whether the date represented in "self" is an all day date (date only) or not (date + time). diff --git a/SOPE/NGCards/iCalDateTime.h b/SOPE/NGCards/iCalDateTime.h index a3fa2c120..dea30fd64 100644 --- a/SOPE/NGCards/iCalDateTime.h +++ b/SOPE/NGCards/iCalDateTime.h @@ -33,9 +33,12 @@ - (void) setTimeZone: (iCalTimeZone *) iTZ; - (iCalTimeZone *) timeZone; +- (void) setDate: (NSCalendarDate *) date; - (void) setDateTime: (NSCalendarDate *) dateTime; - (NSCalendarDate *) dateTime; +- (BOOL) isAllDay; + @end #endif /* ICALDATETIMEELEMENT_H */ diff --git a/SOPE/NGCards/iCalDateTime.m b/SOPE/NGCards/iCalDateTime.m index b0f1a19f5..305580b7f 100644 --- a/SOPE/NGCards/iCalDateTime.m +++ b/SOPE/NGCards/iCalDateTime.m @@ -89,11 +89,12 @@ /* TODO: should implement the case where the TZ would be implicitly local (no TZID and no UTC) */ -- (void) setDateTime: (NSCalendarDate *) dateTime +- (void) _setDateTime: (NSCalendarDate *) dateTime + forAllDayEntity: (BOOL) forAllDayEntity { NSCalendarDate *tmpTime; NSTimeZone *utcTZ; - NSString *timeString; + NSString *timeString, *fmtTimeString; iCalTimeZone *tz; if (dateTime) @@ -107,8 +108,11 @@ tmpTime = [dateTime copy]; [tmpTime setTimeZone: utcTZ]; - timeString = [NSString stringWithFormat: @"%@Z", - [tmpTime iCalFormattedDateTimeString]]; + if (forAllDayEntity) + fmtTimeString = [tmpTime iCalFormattedDateTimeString]; + else + fmtTimeString = [tmpTime iCalFormattedDateString]; + timeString = [NSString stringWithFormat: @"%@Z", fmtTimeString]; [tmpTime release]; } } @@ -118,6 +122,16 @@ [self setValue: 0 to: timeString]; } +- (void) setDateTime: (NSCalendarDate *) dateTime +{ + [self _setDateTime: dateTime forAllDayEntity: NO]; +} + +- (void) setDate: (NSCalendarDate *) dateTime +{ + [self _setDateTime: dateTime forAllDayEntity: YES]; +} + - (NSCalendarDate *) dateTime { iCalTimeZone *iTZ; @@ -152,4 +166,9 @@ return dateTime; } +- (BOOL) isAllDay +{ + return [[self value: 0] isAllDayDate]; +} + @end