2 * Copyright (c) 2008 Apple Inc. All rights reserved.
4 * @APPLE_LICENSE_HEADER_START@
6 * This file contains Original Code and/or Modifications of Original Code
7 * as defined in and that are subject to the Apple Public Source License
8 * Version 2.0 (the 'License'). You may not use this file except in
9 * compliance with the License. Please obtain a copy of the License at
10 * http://www.opensource.apple.com/apsl/ and read it before using this
13 * The Original Code and all software distributed under the License are
14 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
15 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
16 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
18 * Please see the License for the specific language governing rights and
19 * limitations under the License.
21 * @APPLE_LICENSE_HEADER_END@
24 Copyright (c) 1998-2007, Apple Inc. All rights reserved.
27 #if !defined(__COREFOUNDATION_CFDATE__)
28 #define __COREFOUNDATION_CFDATE__ 1
30 #include <CoreFoundation/CFBase.h>
34 typedef double CFTimeInterval
;
35 typedef CFTimeInterval CFAbsoluteTime
;
36 /* absolute time is the time interval since the reference date */
37 /* the reference date (epoch) is 00:00:00 1 January 2001. */
40 CFAbsoluteTime
CFAbsoluteTimeGetCurrent(void);
43 const CFTimeInterval kCFAbsoluteTimeIntervalSince1970
;
45 const CFTimeInterval kCFAbsoluteTimeIntervalSince1904
;
47 typedef const struct __CFDate
* CFDateRef
;
50 CFTypeID
CFDateGetTypeID(void);
53 CFDateRef
CFDateCreate(CFAllocatorRef allocator
, CFAbsoluteTime at
);
56 CFAbsoluteTime
CFDateGetAbsoluteTime(CFDateRef theDate
);
59 CFTimeInterval
CFDateGetTimeIntervalSinceDate(CFDateRef theDate
, CFDateRef otherDate
);
62 CFComparisonResult
CFDateCompare(CFDateRef theDate
, CFDateRef otherDate
, void *context
);
64 typedef const struct __CFTimeZone
* CFTimeZoneRef
;
85 kCFGregorianUnitsYears
= (1 << 0),
86 kCFGregorianUnitsMonths
= (1 << 1),
87 kCFGregorianUnitsDays
= (1 << 2),
88 kCFGregorianUnitsHours
= (1 << 3),
89 kCFGregorianUnitsMinutes
= (1 << 4),
90 kCFGregorianUnitsSeconds
= (1 << 5),
91 kCFGregorianAllUnits
= 0x00FFFFFF
93 typedef CFOptionFlags CFGregorianUnitFlags
;
96 Boolean
CFGregorianDateIsValid(CFGregorianDate gdate
, CFOptionFlags unitFlags
);
99 CFAbsoluteTime
CFGregorianDateGetAbsoluteTime(CFGregorianDate gdate
, CFTimeZoneRef tz
);
102 CFGregorianDate
CFAbsoluteTimeGetGregorianDate(CFAbsoluteTime at
, CFTimeZoneRef tz
);
105 CFAbsoluteTime
CFAbsoluteTimeAddGregorianUnits(CFAbsoluteTime at
, CFTimeZoneRef tz
, CFGregorianUnits units
);
108 CFGregorianUnits
CFAbsoluteTimeGetDifferenceAsGregorianUnits(CFAbsoluteTime at1
, CFAbsoluteTime at2
, CFTimeZoneRef tz
, CFOptionFlags unitFlags
);
111 SInt32
CFAbsoluteTimeGetDayOfWeek(CFAbsoluteTime at
, CFTimeZoneRef tz
);
114 SInt32
CFAbsoluteTimeGetDayOfYear(CFAbsoluteTime at
, CFTimeZoneRef tz
);
117 SInt32
CFAbsoluteTimeGetWeekOfYear(CFAbsoluteTime at
, CFTimeZoneRef tz
);
121 #endif /* ! __COREFOUNDATION_CFDATE__ */