File: CFDateInterval.h

package info (click to toggle)
swiftlang 6.0.3-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,519,992 kB
  • sloc: cpp: 9,107,863; ansic: 2,040,022; asm: 1,135,751; python: 296,500; objc: 82,456; f90: 60,502; lisp: 34,951; pascal: 19,946; sh: 18,133; perl: 7,482; ml: 4,937; javascript: 4,117; makefile: 3,840; awk: 3,535; xml: 914; fortran: 619; cs: 573; ruby: 573
file content (62 lines) | stat: -rw-r--r-- 3,075 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
/*    CFDateInterval.h
      Copyright (c) 2004-2019, Apple Inc. and the Swift project authors

      Portions Copyright (c) 2014-2019, Apple Inc. and the Swift project authors
      Licensed under Apache License v2.0 with Runtime Library Exception
      See http://swift.org/LICENSE.txt for license information
      See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
 */

#if !defined(__COREFOUNDATION_CFDATEINTERVAL__)
#define __COREFOUNDATION_CFDATEINTERVAL__ 1

#include "CFBase.h"
#include "CFDate.h"

CF_IMPLICIT_BRIDGING_ENABLED
CF_EXTERN_C_BEGIN
CF_ASSUME_NONNULL_BEGIN

typedef struct __CFDateInterval * CFDateIntervalRef;

CF_EXPORT CFDateIntervalRef CFDateIntervalCreate(CFAllocatorRef _Nullable allocator, CFDateRef startDate, CFTimeInterval duration) API_AVAILABLE(macos(10.14), ios(12.0), watchos(5.0), tvos(12.0));

CF_EXPORT CFDateIntervalRef CFDateIntervalCreateWithEndDate(CFAllocatorRef _Nullable allocator, CFDateRef startDate, CFDateRef endDate) API_AVAILABLE(macos(10.14), ios(12.0), watchos(5.0), tvos(12.0));

CF_EXPORT CFTimeInterval CFDateIntervalGetDuration(CFDateIntervalRef interval) API_AVAILABLE(macos(10.14), ios(12.0), watchos(5.0), tvos(12.0));

CF_EXPORT CFDateRef CFDateIntervalCopyStartDate(CFDateIntervalRef interval) API_AVAILABLE(macos(10.14), ios(12.0), watchos(5.0), tvos(12.0));

CF_EXPORT CFDateRef CFDateIntervalCopyEndDate(CFDateIntervalRef interval) API_AVAILABLE(macos(10.14), ios(12.0), watchos(5.0), tvos(12.0));

/*
 Comparison prioritizes ordering by start date. If the start dates are equal, then it will order by duration.
 e.g.
    Given intervals a and b
        a.   |-----|
        b.      |-----|
 CFDateIntervalCompare(a, b) would return kCFCompareLessThan because a's startDate is earlier in time than b's start date.

 In the event that the start dates are equal, the compare method will attempt to order by duration.
 e.g.
    Given intervals c and d
        c.  |-----|
        d.  |---|
 CFDateIntervalCompare(c, d)would result in kCFCompareGreaterThan because c is longer than d.

 If both the start dates and the durations are equal, then the intervals are considered equal and kCFCompareEqualTo is returned as the result.
 */
CF_EXPORT CFComparisonResult CFDateIntervalCompare(CFDateIntervalRef interval1, CFDateIntervalRef interval2) API_AVAILABLE(macos(10.14), ios(12.0), watchos(5.0), tvos(12.0));

CF_EXPORT Boolean CFDateIntervalIntersectsDateInterval(CFDateIntervalRef interval, CFDateIntervalRef intervalToIntersect) API_AVAILABLE(macos(10.14), ios(12.0), watchos(5.0), tvos(12.0));

CF_EXPORT CFDateIntervalRef _Nullable CFDateIntervalCreateIntersectionWithDateInterval(CFAllocatorRef _Nullable allocator, CFDateIntervalRef interval, CFDateIntervalRef intervalToIntersect) API_AVAILABLE(macos(10.14), ios(12.0), watchos(5.0), tvos(12.0));

CF_EXPORT Boolean CFDateIntervalContainsDate(CFDateIntervalRef interval, CFDateRef date) API_AVAILABLE(macos(10.14), ios(12.0), watchos(5.0), tvos(12.0));

CF_ASSUME_NONNULL_END
CF_EXTERN_C_END
CF_IMPLICIT_BRIDGING_DISABLED

#endif