OSDN Git Service

Doutaku を 1.0 にアップデート
[kcd/KCD.git] / KCD / TimerCountFormatter.swift
1 //
2 //  TimerCountFormatter.swift
3 //  KCD
4 //
5 //  Created by Hori,Masaki on 2017/01/04.
6 //  Copyright © 2017年 Hori,Masaki. All rights reserved.
7 //
8
9 import Cocoa
10
11 final class TimerCountFormatter: Formatter {
12     
13     override func string(for obj: Any?) -> String? {
14         
15         let v: Double? = {
16             
17             if let o = obj as? NSNumber { return o.doubleValue }
18             
19             if let o = obj as? Date { return Double(o.timeIntervalSince1970) }
20             
21             return nil
22         }()
23         
24         guard let value = v else {
25             
26             return ""
27         }
28         
29         let minus = value < 0
30         let interval = minus ? -value : value
31         
32         let hour = Int(interval / (60 * 60))
33         let minComp = interval - Double(hour * 60 * 60)
34         let minutes = Int(minComp / 60)
35         let secComp = minComp - Double(minutes * 60)
36         let seconds = Int(secComp)
37         
38         return String(format: "%@%02ld:%02ld:%02ld", arguments: [(minus ? "-" : ""), hour, minutes, seconds])
39     }
40 }