CFDate.h
1 /* CFDate.h 2 Copyright (c) 1998-2019, Apple Inc. and the Swift project authors 3 4 Portions Copyright (c) 2014-2019, Apple Inc. and the Swift project authors 5 Licensed under Apache License v2.0 with Runtime Library Exception 6 See http://swift.org/LICENSE.txt for license information 7 See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors 8 */ 9 10 #if !defined(__COREFOUNDATION_CFDATE__) 11 #define __COREFOUNDATION_CFDATE__ 1 12 13 #include <CoreFoundation/CFBase.h> 14 15 CF_IMPLICIT_BRIDGING_ENABLED 16 CF_EXTERN_C_BEGIN 17 18 typedef double CFTimeInterval; 19 typedef CFTimeInterval CFAbsoluteTime; 20 /* absolute time is the time interval since the reference date */ 21 /* the reference date (epoch) is 00:00:00 1 January 2001. */ 22 23 CF_EXPORT 24 CFAbsoluteTime CFAbsoluteTimeGetCurrent(void); 25 26 CF_EXPORT 27 const CFTimeInterval kCFAbsoluteTimeIntervalSince1970; 28 CF_EXPORT 29 const CFTimeInterval kCFAbsoluteTimeIntervalSince1904; 30 31 typedef const struct CF_BRIDGED_TYPE(NSDate) __CFDate * CFDateRef; 32 33 CF_EXPORT 34 CFTypeID CFDateGetTypeID(void); 35 36 CF_EXPORT 37 CFDateRef CFDateCreate(CFAllocatorRef allocator, CFAbsoluteTime at); 38 39 CF_EXPORT 40 CFAbsoluteTime CFDateGetAbsoluteTime(CFDateRef theDate); 41 42 CF_EXPORT 43 CFTimeInterval CFDateGetTimeIntervalSinceDate(CFDateRef theDate, CFDateRef otherDate); 44 45 CF_EXPORT 46 CFComparisonResult CFDateCompare(CFDateRef theDate, CFDateRef otherDate, void *context); 47 48 CF_IMPLICIT_BRIDGING_DISABLED 49 50 typedef const struct CF_BRIDGED_TYPE(NSTimeZone) __CFTimeZone * CFTimeZoneRef; 51 52 53 #if !defined(CF_CALENDAR_ENUM_DEPRECATED) 54 #define CF_CALENDAR_ENUM_DEPRECATED(A, B, C, D, ...) CF_ENUM_DEPRECATED(A, B, C, D, __VA_ARGS__) 55 #define CF_CALENDAR_DEPRECATED(A, B, C, D, ...) CF_DEPRECATED(A, B, C, D, __VA_ARGS__) 56 #endif 57 58 typedef struct { 59 SInt32 year; 60 SInt8 month; 61 SInt8 day; 62 SInt8 hour; 63 SInt8 minute; 64 double second; 65 } CFGregorianDate API_DEPRECATED("Use CFCalendar or NSCalendar API instead", macos(10.4, 10.10), ios(2.0, 8.0), watchos(2.0, 2.0), tvos(9.0, 9.0)); 66 67 typedef struct { 68 SInt32 years; 69 SInt32 months; 70 SInt32 days; 71 SInt32 hours; 72 SInt32 minutes; 73 double seconds; 74 } CFGregorianUnits API_DEPRECATED("Use CFCalendar or NSCalendar API instead", macos(10.4, 10.10), ios(2.0, 8.0), watchos(2.0, 2.0), tvos(9.0, 9.0)); 75 76 typedef CF_OPTIONS(CFOptionFlags, CFGregorianUnitFlags) { 77 kCFGregorianUnitsYears API_DEPRECATED("Use CFCalendar or NSCalendar API instead", macos(10.4, 10.10), ios(2.0, 8.0), watchos(2.0, 2.0), tvos(9.0, 9.0)) = (1UL << 0), 78 kCFGregorianUnitsMonths API_DEPRECATED("Use CFCalendar or NSCalendar API instead", macos(10.4, 10.10), ios(2.0, 8.0), watchos(2.0, 2.0), tvos(9.0, 9.0)) = (1UL << 1), 79 kCFGregorianUnitsDays API_DEPRECATED("Use CFCalendar or NSCalendar API instead", macos(10.4, 10.10), ios(2.0, 8.0), watchos(2.0, 2.0), tvos(9.0, 9.0)) = (1UL << 2), 80 kCFGregorianUnitsHours API_DEPRECATED("Use CFCalendar or NSCalendar API instead", macos(10.4, 10.10), ios(2.0, 8.0), watchos(2.0, 2.0), tvos(9.0, 9.0)) = (1UL << 3), 81 kCFGregorianUnitsMinutes API_DEPRECATED("Use CFCalendar or NSCalendar API instead", macos(10.4, 10.10), ios(2.0, 8.0), watchos(2.0, 2.0), tvos(9.0, 9.0)) = (1UL << 4), 82 kCFGregorianUnitsSeconds API_DEPRECATED("Use CFCalendar or NSCalendar API instead", macos(10.4, 10.10), ios(2.0, 8.0), watchos(2.0, 2.0), tvos(9.0, 9.0)) = (1UL << 5), 83 kCFGregorianAllUnits API_DEPRECATED("Use CFCalendar or NSCalendar API instead", macos(10.4, 10.10), ios(2.0, 8.0), watchos(2.0, 2.0), tvos(9.0, 9.0)) = 0x00FFFFFF 84 }; 85 86 CF_EXPORT 87 Boolean CFGregorianDateIsValid(CFGregorianDate gdate, CFOptionFlags unitFlags) API_DEPRECATED("Use CFCalendar or NSCalendar API instead", macos(10.4, 10.10), ios(2.0, 8.0), watchos(2.0, 2.0), tvos(9.0, 9.0)); 88 89 CF_EXPORT 90 CFAbsoluteTime CFGregorianDateGetAbsoluteTime(CFGregorianDate gdate, CFTimeZoneRef tz) API_DEPRECATED("Use CFCalendar or NSCalendar API instead", macos(10.4, 10.10), ios(2.0, 8.0), watchos(2.0, 2.0), tvos(9.0, 9.0)); 91 92 CF_EXPORT 93 CFGregorianDate CFAbsoluteTimeGetGregorianDate(CFAbsoluteTime at, CFTimeZoneRef tz) API_DEPRECATED("Use CFCalendar or NSCalendar API instead", macos(10.4, 10.10), ios(2.0, 8.0), watchos(2.0, 2.0), tvos(9.0, 9.0)); 94 95 CF_EXPORT 96 CFAbsoluteTime CFAbsoluteTimeAddGregorianUnits(CFAbsoluteTime at, CFTimeZoneRef tz, CFGregorianUnits units) API_DEPRECATED("Use CFCalendar or NSCalendar API instead", macos(10.4, 10.10), ios(2.0, 8.0), watchos(2.0, 2.0), tvos(9.0, 9.0)); 97 98 CF_EXPORT 99 CFGregorianUnits CFAbsoluteTimeGetDifferenceAsGregorianUnits(CFAbsoluteTime at1, CFAbsoluteTime at2, CFTimeZoneRef tz, CFOptionFlags unitFlags) API_DEPRECATED("Use CFCalendar or NSCalendar API instead", macos(10.4, 10.10), ios(2.0, 8.0), watchos(2.0, 2.0), tvos(9.0, 9.0)); 100 101 CF_EXPORT 102 SInt32 CFAbsoluteTimeGetDayOfWeek(CFAbsoluteTime at, CFTimeZoneRef tz) API_DEPRECATED("Use CFCalendar or NSCalendar API instead", macos(10.4, 10.10), ios(2.0, 8.0), watchos(2.0, 2.0), tvos(9.0, 9.0)); 103 104 CF_EXPORT 105 SInt32 CFAbsoluteTimeGetDayOfYear(CFAbsoluteTime at, CFTimeZoneRef tz) API_DEPRECATED("Use CFCalendar or NSCalendar API instead", macos(10.4, 10.10), ios(2.0, 8.0), watchos(2.0, 2.0), tvos(9.0, 9.0)); 106 107 CF_EXPORT 108 SInt32 CFAbsoluteTimeGetWeekOfYear(CFAbsoluteTime at, CFTimeZoneRef tz) API_DEPRECATED("Use CFCalendar or NSCalendar API instead", macos(10.4, 10.10), ios(2.0, 8.0), watchos(2.0, 2.0), tvos(9.0, 9.0)); 109 110 CF_EXTERN_C_END 111 112 #endif /* ! __COREFOUNDATION_CFDATE__ */ 113