2 * Copyright (c) 2013 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@
25 Copyright (c) 1998-2013, Apple Inc. All rights reserved.
28 #if !defined(__COREFOUNDATION_CFDATE__)
29 #define __COREFOUNDATION_CFDATE__ 1
31 #include <CoreFoundation/CFBase.h>
33 CF_IMPLICIT_BRIDGING_ENABLED
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 CF_IMPLICIT_BRIDGING_DISABLED
68 typedef const struct __CFTimeZone
* CFTimeZoneRef
;
71 #if !defined(CF_CALENDAR_ENUM_DEPRECATED)
72 #if NS_ENABLE_CALENDAR_DEPRECATIONS
73 #define CF_CALENDAR_ENUM_DEPRECATED(A, B, C, D, ...) CF_ENUM_DEPRECATED(A, B, C, D, __VA_ARGS__)
74 #define CF_CALENDAR_DEPRECATED(A, B, C, D, ...) CF_DEPRECATED(A, B, C, D, __VA_ARGS__)
76 #define CF_CALENDAR_ENUM_DEPRECATED(A, B, C, D, ...) CF_ENUM_AVAILABLE(A, C)
77 #define CF_CALENDAR_DEPRECATED(A, B, C, D, ...) CF_AVAILABLE(A, C)
88 } CFGregorianDate
CF_CALENDAR_DEPRECATED(10_4
, 10_9
, 2_0
, 7_0
, "Use CFCalendar or NSCalendar API instead");
97 } CFGregorianUnits
CF_CALENDAR_DEPRECATED(10_4
, 10_9
, 2_0
, 7_0
, "Use CFCalendar or NSCalendar API instead");
99 typedef CF_OPTIONS(CFOptionFlags
, CFGregorianUnitFlags
) {
100 kCFGregorianUnitsYears
CF_CALENDAR_ENUM_DEPRECATED(10_4
, 10_9
, 2_0
, 7_0
, "Use CFCalendar or NSCalendar API instead") = (1UL << 0),
101 kCFGregorianUnitsMonths
CF_CALENDAR_ENUM_DEPRECATED(10_4
, 10_9
, 2_0
, 7_0
, "Use CFCalendar or NSCalendar API instead") = (1UL << 1),
102 kCFGregorianUnitsDays
CF_CALENDAR_ENUM_DEPRECATED(10_4
, 10_9
, 2_0
, 7_0
, "Use CFCalendar or NSCalendar API instead") = (1UL << 2),
103 kCFGregorianUnitsHours
CF_CALENDAR_ENUM_DEPRECATED(10_4
, 10_9
, 2_0
, 7_0
, "Use CFCalendar or NSCalendar API instead") = (1UL << 3),
104 kCFGregorianUnitsMinutes
CF_CALENDAR_ENUM_DEPRECATED(10_4
, 10_9
, 2_0
, 7_0
, "Use CFCalendar or NSCalendar API instead") = (1UL << 4),
105 kCFGregorianUnitsSeconds
CF_CALENDAR_ENUM_DEPRECATED(10_4
, 10_9
, 2_0
, 7_0
, "Use CFCalendar or NSCalendar API instead") = (1UL << 5),
106 kCFGregorianAllUnits
CF_CALENDAR_ENUM_DEPRECATED(10_4
, 10_9
, 2_0
, 7_0
, "Use CFCalendar or NSCalendar API instead") = 0x00FFFFFF
110 Boolean
CFGregorianDateIsValid(CFGregorianDate gdate
, CFOptionFlags unitFlags
) CF_CALENDAR_DEPRECATED(10_4
, 10_9
, 2_0
, 7_0
, "Use CFCalendar or NSCalendar API instead");
113 CFAbsoluteTime
CFGregorianDateGetAbsoluteTime(CFGregorianDate gdate
, CFTimeZoneRef tz
) CF_CALENDAR_DEPRECATED(10_4
, 10_9
, 2_0
, 7_0
, "Use CFCalendar or NSCalendar API instead");
116 CFGregorianDate
CFAbsoluteTimeGetGregorianDate(CFAbsoluteTime at
, CFTimeZoneRef tz
) CF_CALENDAR_DEPRECATED(10_4
, 10_9
, 2_0
, 7_0
, "Use CFCalendar or NSCalendar API instead");
119 CFAbsoluteTime
CFAbsoluteTimeAddGregorianUnits(CFAbsoluteTime at
, CFTimeZoneRef tz
, CFGregorianUnits units
) CF_CALENDAR_DEPRECATED(10_4
, 10_9
, 2_0
, 7_0
, "Use CFCalendar or NSCalendar API instead");
122 CFGregorianUnits
CFAbsoluteTimeGetDifferenceAsGregorianUnits(CFAbsoluteTime at1
, CFAbsoluteTime at2
, CFTimeZoneRef tz
, CFOptionFlags unitFlags
) CF_CALENDAR_DEPRECATED(10_4
, 10_9
, 2_0
, 7_0
, "Use CFCalendar or NSCalendar API instead");
125 SInt32
CFAbsoluteTimeGetDayOfWeek(CFAbsoluteTime at
, CFTimeZoneRef tz
) CF_CALENDAR_DEPRECATED(10_4
, 10_9
, 2_0
, 7_0
, "Use CFCalendar or NSCalendar API instead");
128 SInt32
CFAbsoluteTimeGetDayOfYear(CFAbsoluteTime at
, CFTimeZoneRef tz
) CF_CALENDAR_DEPRECATED(10_4
, 10_9
, 2_0
, 7_0
, "Use CFCalendar or NSCalendar API instead");
131 SInt32
CFAbsoluteTimeGetWeekOfYear(CFAbsoluteTime at
, CFTimeZoneRef tz
) CF_CALENDAR_DEPRECATED(10_4
, 10_9
, 2_0
, 7_0
, "Use CFCalendar or NSCalendar API instead");
135 #endif /* ! __COREFOUNDATION_CFDATE__ */