めっちゃ構造体
Code
struct StopWatch {
    
    var time: TimeInterval = 0
    
    private var startDate: Date = Date()
    private var endDate: Date = Date()
    
    init() {}
    
    mutating func start() {
        self.startDate = Date()
        self.time = 0
    }
    
    @discardableResult
    mutating func stop() -> TimeInterval {
        self.endDate = Date()
        self.time = self.endDate.timeIntervalSince(self.startDate)
        return self.time
    }
    
    mutating func reset() {
        self.time = 0
        self.startDate = Date()
        self.endDate = Date()
    }
}