Monotone-Parent: d13851bad5ecc6757d6a051998c7fd6722526ba9

Monotone-Revision: 8c4a5e6241dde8edac2d02e1b2dda9528b69ddb6

Monotone-Author: wsourdeau@inverse.ca
Monotone-Date: 2011-03-22T21:22:34
Monotone-Branch: ca.inverse.sogo
maint-2.0.2
Wolfgang Sourdeau 2011-03-22 21:22:34 +00:00
parent 781040d45b
commit 7981507271
3 changed files with 27 additions and 9 deletions

View File

@ -1,3 +1,8 @@
2011-03-22 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* OpenChange/NSCalendarDate+MAPIStore.m (-asMinutesSince1601):
corollary to +dateFromMinutesSince1601.
2011-03-20 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* OpenChange/MAPIStoreCalendarMessage.m

View File

@ -27,9 +27,10 @@
@interface NSCalendarDate (MAPIStoreDataTypes)
+ (id) dateFromFileTime: (const struct FILETIME *) timeValue;
+ (id) dateFromMinutesSince1601: (uint32_t) minutes;
- (uint32_t) asMinutesSince1601;
+ (id) dateFromFileTime: (const struct FILETIME *) timeValue;
- (struct FILETIME *) asFileTimeInMemCtx: (void *) memCtx;
@end

View File

@ -35,15 +35,12 @@ static NSCalendarDate *refDate = nil;
@implementation NSCalendarDate (MAPIStoreDataTypes)
static void
_setupRefDate()
_setupRefDate ()
{
NSTimeZone *utc;
utc = [NSTimeZone timeZoneWithName: @"UTC"];
refDate = [NSCalendarDate dateWithYear: 1601 month: 1 day: 1
hour: 0 minute: 0 second: 0
timeZone: utc];
[refDate retain];
refDate = [[NSCalendarDate alloc]
initWithYear: 1601 month: 1 day: 1
hour: 0 minute: 0 second: 0
timeZone: [NSTimeZone timeZoneWithName: @"UTC"]];
}
+ (id) dateFromMinutesSince1601: (uint32_t) minutes
@ -59,6 +56,21 @@ _setupRefDate()
return result;
}
- (uint32_t) asMinutesSince1601
{
uint32_t minutes;
NSInteger offset;
if (!refDate)
_setupRefDate ();
minutes = (uint32_t) ([self timeIntervalSinceDate: refDate] / 60);
offset = [[self timeZone] secondsFromGMT];
minutes += (offset / 60);
return minutes;
}
+ (id) dateFromFileTime: (const struct FILETIME *) timeValue
{
NSCalendarDate *result;