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