CFAbsoluteTimeGetDifferenceAsGregorianUnits(_:_:_:_:)
Computes the time difference between two specified absolute times and returns the result as an interval in Gregorian units.
Declaration
func CFAbsoluteTimeGetDifferenceAsGregorianUnits(_ at1: CFAbsoluteTime, _ at2: CFAbsoluteTime, _ tz: CFTimeZone!, _ unitFlags: CFOptionFlags) -> CFGregorianUnitsParameters
- at1:
An absolute time.
- at2:
An absolute time.
- tz:
The time zone to use for time correction. Pass
NULLfor GMT. - unitFlags:
A mask that specifies which Gregorian unit fields to use when converting the absolute time difference into a Gregorian interval. See Cfgregorianunitflags for a list of values from which to construct the mask.
Return Value
The difference between the specified absolute times (as at1 - at2—if at1 is earlier than at2, the result is negative) expressed in the units specified by unitFlags.
Discussion
The temporal difference is expressed as accurately as possible, given the units specified. For example, if you asked for the number of months and hours between 2:30pm on April 8 2005 and 5:45pm September 9 2005, the result would be 5 months and 27 hours.
The following example prints the number of hours and minutes between the current time (now) and the reference date (1 January 2001 00:00:00 GMT).
CFAbsoluteTime now = CFAbsoluteTimeGetCurrent ();
CFGregorianUnits units = CFAbsoluteTimeGetDifferenceAsGregorianUnits
(now, 0, NULL, (kCFGregorianUnitsHours | kCFGregorianUnitsMinutes));
CFStringRef output = CFStringCreateWithFormat
(NULL, 0, CFSTR("hours: %d; minutes: %d"), units.hours, units.minutes);
CFShow(output);