下記リンクの書きコードの部分について、
こちらはなぜ出力結果を「minutes:seconds」とできるのでしょうか?
こちらがどうしても理解できず、ご教授いただきたいです。
let minutes = "((seconds % 3600) / 60)" let seconds = "((seconds % 3600) % 60)" let minuteStamp = minutes.count > 1 ? minutes : "0" + minutes let secondStamp = seconds.count > 1 ? seconds : "0" + seconds func start() { timerMode = .running timer = Timer.scheduledTimer(withTimeInterval: 1.0, repeats: true, block: { timer in if self.secondsLeft == 0 { self.reset() } self.secondsLeft -= 1 }) }
seconds という変数名がかぶってるのでエラーになると思いますが、理解できないポイントはなぜ 3600 で割った余りをさらに 60 で割ったり余りを求めたりしてるかってことですか?
そうです、教えて欲しいです
1 時間は 60 分、1 分は 60 秒なので、1 時間は 60 * 60 = 3600 秒です。
例えば 1 時間 23 分 45 秒は 1 * 3600 + 23 * 60 + 45 = 5025 秒で、これを 3600 で割った余り 1425 を 60 で割ると 23.75、小数点以下を切り捨てて 23 分、1425 を 60 で割った余りが 45 秒で、23:45 という出力が得られます。
なるほどです。。
ありがとうございます泣
クローズしたいので、別途回答お願いします汗
すいません、やっぱり質問です。
上記の場合ドキュメントで、わざわざ計算する意図がわかりません。
時間の指定はないですし、23 * 60 + 45だけで、23:45が指定できるのではないでしょうか?
回答1件
あなたの回答
tips
プレビュー