Emcee

Форк
0
/
DateSince1970ReferenceDate.swift 
47 строк · 1.5 Кб
1
import Foundation
2

3
public struct DateSince1970ReferenceDate: Codable, Hashable, Comparable, ExpressibleByFloatLiteral, ExpressibleByIntegerLiteral {
4
    public let date: Date
5
    
6
    public init(timeIntervalSince1970: TimeInterval) {
7
        date = Date(timeIntervalSince1970: timeIntervalSince1970)
8
    }
9
    
10
    public typealias FloatLiteralType = Double
11
    public init(floatLiteral: TimeInterval) {
12
        date = Date(timeIntervalSince1970: floatLiteral)
13
    }
14
    
15
    public typealias IntegerLiteralType = Int
16
    public init(integerLiteral value: Int) {
17
        date = Date(timeIntervalSince1970: TimeInterval(value))
18
    }
19
    
20
    public var timeIntervalSince1970: TimeInterval {
21
        date.timeIntervalSince1970
22
    }
23
    
24
    public func addingTimeInterval(_ value: TimeInterval) -> Self {
25
        return Self(timeIntervalSince1970: timeIntervalSince1970 + value)
26
    }
27
    
28
    public static func - (lhs: Self, rhs: IntegerLiteralType) -> Self {
29
        return lhs.addingTimeInterval(-TimeInterval(rhs))
30
    }
31
    
32
    public static func + (lhs: Self, rhs: IntegerLiteralType) -> Self {
33
        return lhs.addingTimeInterval(TimeInterval(rhs))
34
    }
35
    
36
    public static func - (lhs: Self, rhs: FloatLiteralType) -> Self {
37
        return lhs.addingTimeInterval(-rhs)
38
    }
39
    
40
    public static func + (lhs: Self, rhs: FloatLiteralType) -> Self {
41
        return lhs.addingTimeInterval(rhs)
42
    }
43
    
44
    public static func < (lhs: Self, rhs: Self) -> Bool {
45
        lhs.date < rhs.date
46
    }
47
}
48

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.