2 * Copyright (c) 2005 Apple Computer, 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-2005, Apple, Inc. All rights reserved.
27 #if !defined(__COREFOUNDATION_CFDATE__)
28 #define __COREFOUNDATION_CFDATE__ 1
30 #include <CoreFoundation/CFBase.h>
32 #if defined(__cplusplus)
36 typedef double CFTimeInterval
;
37 typedef CFTimeInterval CFAbsoluteTime
;
38 /* absolute time is the time interval since the reference date */
39 /* the reference date (epoch) is 00:00:00 1 January 2001. */
42 CFAbsoluteTime
CFAbsoluteTimeGetCurrent(void);
45 const CFTimeInterval kCFAbsoluteTimeIntervalSince1970
;
47 const CFTimeInterval kCFAbsoluteTimeIntervalSince1904
;
49 typedef const struct __CFDate
* CFDateRef
;
52 CFTypeID
CFDateGetTypeID(void);
55 CFDateRef
CFDateCreate(CFAllocatorRef allocator
, CFAbsoluteTime at
);
58 CFAbsoluteTime
CFDateGetAbsoluteTime(CFDateRef theDate
);
61 CFTimeInterval
CFDateGetTimeIntervalSinceDate(CFDateRef theDate
, CFDateRef otherDate
);
64 CFComparisonResult
CFDateCompare(CFDateRef theDate
, CFDateRef otherDate
, void *context
);
66 typedef const struct __CFTimeZone
* CFTimeZoneRef
;
87 kCFGregorianUnitsYears
= (1 << 0),
88 kCFGregorianUnitsMonths
= (1 << 1),
89 kCFGregorianUnitsDays
= (1 << 2),
90 kCFGregorianUnitsHours
= (1 << 3),
91 kCFGregorianUnitsMinutes
= (1 << 4),
92 kCFGregorianUnitsSeconds
= (1 << 5),
94 kCFGregorianUnitsTimeZone
= (1 << 8),
95 kCFGregorianUnitsDayOfWeek
= (1 << 9),
97 kCFGregorianAllUnits
= 0x00FFFFFF
98 } CFGregorianUnitFlags
;
101 Boolean
CFGregorianDateIsValid(CFGregorianDate gdate
, CFOptionFlags unitFlags
);
104 CFAbsoluteTime
CFGregorianDateGetAbsoluteTime(CFGregorianDate gdate
, CFTimeZoneRef tz
);
107 CFGregorianDate
CFAbsoluteTimeGetGregorianDate(CFAbsoluteTime at
, CFTimeZoneRef tz
);
110 CFAbsoluteTime
CFAbsoluteTimeAddGregorianUnits(CFAbsoluteTime at
, CFTimeZoneRef tz
, CFGregorianUnits units
);
113 CFGregorianUnits
CFAbsoluteTimeGetDifferenceAsGregorianUnits(CFAbsoluteTime at1
, CFAbsoluteTime at2
, CFTimeZoneRef tz
, CFOptionFlags unitFlags
);
116 SInt32
CFAbsoluteTimeGetDayOfWeek(CFAbsoluteTime at
, CFTimeZoneRef tz
);
119 SInt32
CFAbsoluteTimeGetDayOfYear(CFAbsoluteTime at
, CFTimeZoneRef tz
);
122 SInt32
CFAbsoluteTimeGetWeekOfYear(CFAbsoluteTime at
, CFTimeZoneRef tz
);
124 #if defined(__cplusplus)
128 #endif /* ! __COREFOUNDATION_CFDATE__ */