2 * Copyright (c) 2014 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-2014, 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 CF_BRIDGED_TYPE(NSDate
) __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 CF_BRIDGED_TYPE(NSTimeZone
) __CFTimeZone
* CFTimeZoneRef
;
71 #if !defined(CF_CALENDAR_ENUM_DEPRECATED)
72 #define CF_CALENDAR_ENUM_DEPRECATED(A, B, C, D, ...) CF_ENUM_DEPRECATED(A, B, C, D, __VA_ARGS__)
73 #define CF_CALENDAR_DEPRECATED(A, B, C, D, ...) CF_DEPRECATED(A, B, C, D, __VA_ARGS__)
83 } CFGregorianDate
CF_CALENDAR_DEPRECATED(10_4
, 10_10
, 2_0
, 8_0
, "Use CFCalendar or NSCalendar API instead");
92 } CFGregorianUnits
CF_CALENDAR_DEPRECATED(10_4
, 10_10
, 2_0
, 8_0
, "Use CFCalendar or NSCalendar API instead");
94 typedef CF_OPTIONS(CFOptionFlags
, CFGregorianUnitFlags
) {
95 kCFGregorianUnitsYears
CF_CALENDAR_ENUM_DEPRECATED(10_4
, 10_10
, 2_0
, 8_0
, "Use CFCalendar or NSCalendar API instead") = (1UL << 0),
96 kCFGregorianUnitsMonths
CF_CALENDAR_ENUM_DEPRECATED(10_4
, 10_10
, 2_0
, 8_0
, "Use CFCalendar or NSCalendar API instead") = (1UL << 1),
97 kCFGregorianUnitsDays
CF_CALENDAR_ENUM_DEPRECATED(10_4
, 10_10
, 2_0
, 8_0
, "Use CFCalendar or NSCalendar API instead") = (1UL << 2),
98 kCFGregorianUnitsHours
CF_CALENDAR_ENUM_DEPRECATED(10_4
, 10_10
, 2_0
, 8_0
, "Use CFCalendar or NSCalendar API instead") = (1UL << 3),
99 kCFGregorianUnitsMinutes
CF_CALENDAR_ENUM_DEPRECATED(10_4
, 10_10
, 2_0
, 8_0
, "Use CFCalendar or NSCalendar API instead") = (1UL << 4),
100 kCFGregorianUnitsSeconds
CF_CALENDAR_ENUM_DEPRECATED(10_4
, 10_10
, 2_0
, 8_0
, "Use CFCalendar or NSCalendar API instead") = (1UL << 5),
101 kCFGregorianAllUnits
CF_CALENDAR_ENUM_DEPRECATED(10_4
, 10_10
, 2_0
, 8_0
, "Use CFCalendar or NSCalendar API instead") = 0x00FFFFFF
105 Boolean
CFGregorianDateIsValid(CFGregorianDate gdate
, CFOptionFlags unitFlags
) CF_CALENDAR_DEPRECATED(10_4
, 10_10
, 2_0
, 8_0
, "Use CFCalendar or NSCalendar API instead");
108 CFAbsoluteTime
CFGregorianDateGetAbsoluteTime(CFGregorianDate gdate
, CFTimeZoneRef tz
) CF_CALENDAR_DEPRECATED(10_4
, 10_10
, 2_0
, 8_0
, "Use CFCalendar or NSCalendar API instead");
111 CFGregorianDate
CFAbsoluteTimeGetGregorianDate(CFAbsoluteTime at
, CFTimeZoneRef tz
) CF_CALENDAR_DEPRECATED(10_4
, 10_10
, 2_0
, 8_0
, "Use CFCalendar or NSCalendar API instead");
114 CFAbsoluteTime
CFAbsoluteTimeAddGregorianUnits(CFAbsoluteTime at
, CFTimeZoneRef tz
, CFGregorianUnits units
) CF_CALENDAR_DEPRECATED(10_4
, 10_10
, 2_0
, 8_0
, "Use CFCalendar or NSCalendar API instead");
117 CFGregorianUnits
CFAbsoluteTimeGetDifferenceAsGregorianUnits(CFAbsoluteTime at1
, CFAbsoluteTime at2
, CFTimeZoneRef tz
, CFOptionFlags unitFlags
) CF_CALENDAR_DEPRECATED(10_4
, 10_10
, 2_0
, 8_0
, "Use CFCalendar or NSCalendar API instead");
120 SInt32
CFAbsoluteTimeGetDayOfWeek(CFAbsoluteTime at
, CFTimeZoneRef tz
) CF_CALENDAR_DEPRECATED(10_4
, 10_10
, 2_0
, 8_0
, "Use CFCalendar or NSCalendar API instead");
123 SInt32
CFAbsoluteTimeGetDayOfYear(CFAbsoluteTime at
, CFTimeZoneRef tz
) CF_CALENDAR_DEPRECATED(10_4
, 10_10
, 2_0
, 8_0
, "Use CFCalendar or NSCalendar API instead");
126 SInt32
CFAbsoluteTimeGetWeekOfYear(CFAbsoluteTime at
, CFTimeZoneRef tz
) CF_CALENDAR_DEPRECATED(10_4
, 10_10
, 2_0
, 8_0
, "Use CFCalendar or NSCalendar API instead");
130 #endif /* ! __COREFOUNDATION_CFDATE__ */