teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

String型。

2016/07/26 08:39

投稿

fuzzball
fuzzball

スコア16733

answer CHANGED
@@ -1,8 +1,8 @@
1
1
  ```swift
2
2
  let comps = NSCalendar.currentCalendar().components([.Hour, .Minute], fromDate: kaishiSentaku.date)
3
3
 
4
- let hour = comps.hour
4
+ let hour = String(comps.hour)
5
- let minute = comps.minute
5
+ let minute = String(comps.minute)
6
6
 
7
7
  print(hour, minute)
8
8
  ```
@@ -16,8 +16,8 @@
16
16
  df.dateFormat = "HH:mm"
17
17
  let str = df.stringFromDate(kaishiSentaku.date)
18
18
 
19
- let hour: Int = Int(str.substringWithRange(str.startIndex.advancedBy(0)...str.startIndex.advancedBy(1)))!
19
+ let hour = str.substringWithRange(str.startIndex.advancedBy(0)...str.startIndex.advancedBy(1))
20
- let minute: Int = Int(str.substringWithRange(str.startIndex.advancedBy(3)...str.startIndex.advancedBy(4)))!
20
+ let minute = str.substringWithRange(str.startIndex.advancedBy(3)...str.startIndex.advancedBy(4))
21
21
 
22
22
  print(hour, minute)
23
23
  ```

1

他にも。

2016/07/26 08:39

投稿

fuzzball
fuzzball

スコア16733

answer CHANGED
@@ -1,6 +1,23 @@
1
1
  ```swift
2
2
  let comps = NSCalendar.currentCalendar().components([.Hour, .Minute], fromDate: kaishiSentaku.date)
3
+
4
+ let hour = comps.hour
5
+ let minute = comps.minute
6
+
3
- print(comps.hour, comps.minute)
7
+ print(hour, minute)
4
8
  ```
5
9
 
6
- これで、kaishiSentakuの時と分を取得できます。
10
+ これで、kaishiSentakuの時と分を取得できます。
11
+
12
+ 他にも、dateChanged()で「時:分」形式のStringに変換していますが、そのStringから抜き出して取得することも出来なくはないです。
13
+
14
+ ```swift
15
+ let df = NSDateFormatter()
16
+ df.dateFormat = "HH:mm"
17
+ let str = df.stringFromDate(kaishiSentaku.date)
18
+
19
+ let hour: Int = Int(str.substringWithRange(str.startIndex.advancedBy(0)...str.startIndex.advancedBy(1)))!
20
+ let minute: Int = Int(str.substringWithRange(str.startIndex.advancedBy(3)...str.startIndex.advancedBy(4)))!
21
+
22
+ print(hour, minute)
23
+ ```