私はスウェーデンでの1時間ごとの仕事の給料を計算するはずのアプリを書いています。ある日の特定のTimeIntervalの間に、基本給にアドオンがあります。私はタイマーを開始し、現在の時間と開始時間を比較して経過時間を取得します。一定の時間間隔(18:00〜01:00翌日または01:00〜06:00)の経過時間を確認するにはどうすればよいですか。これまではチェックの場合は入れ子にしましたが、ユーザーがインターバル時間を変更できるようにしたいと考えています。時間間隔を確認する
0
A
答えて
0
endDate
がstartDate
よりも24時間遅れていると仮定すると、以下の機能を使用して、2つの日付の間の経過時間を時間と分で指定できます。
2つのDate
オブジェクト間の秒数を秒単位で指定すると、時間差/分を指定した人間が判読できる形式に簡単に変換できます。
func timeElapsed(from startDate:Date,to endDate:Date)->DateComponents{
let secondsElapsed = Int(endDate.timeIntervalSince(startDate))
let minutes = (secondsElapsed%3600)/60
let hours = secondsElapsed/3600
return DateComponents(hour: hours, minute: minutes)
}
上記の機能は、日数/月数が異なる場合でも正常に機能します。
いくつかのテストデータ:
timeElapsed(from: Calendar.current.date(from: DateComponents(day: 1, hour: 18, minute: 0))!, to: Calendar.current.date(from: DateComponents(day: 2, hour: 6, minute: 14))!) //hour: 12 minute: 14 isLeapMonth: false
timeElapsed(from: Calendar.current.date(from: DateComponents(day: 1, hour: 20, minute: 46))!, to: Calendar.current.date(from: DateComponents(day: 2, hour: 4, minute: 14))!) //hour: 7 minute: 28 isLeapMonth: false
timeElapsed(from: Calendar.current.date(from: DateComponents(month: 1, day: 31, hour: 20, minute: 0))!, to: Calendar.current.date(from: DateComponents(month: 2, day: 1, hour: 4, minute: 0))!) //hour: 8 minute: 0 isLeapMonth: false
あなたは簡単に、あなたが将来的にはより多く必要になります判断した場合DateComponents
よりを戻すために機能を変更することができます。 2つの日付の間で24時間の差が大きい場合は、簡単に修正することもできます。
関連する問題
- 1. 列内の時間間隔を確認する
- 2. 時間間隔
- 3. 時間間隔タスクサービス
- 4. php - 時間間隔を等間隔に分割する
- 5. vbscriptでの時間間隔の時間
- 6. 2つのタッチ間の正確な時間を確認する
- 7. 時間間隔のJavaScriptビジュアルタイムライングラフ
- 8. 整数時間間隔
- 9. セロリ間隔スケジュール時間
- 10. JPQLの時間間隔
- 11. ビデオの時間間隔
- 12. SQL Serverの時間間隔
- 13. R時間間隔プロット
- 14. 開始時間と終了時間を時間間隔に変換するPHP
- 15. 実行時間を確認するオンラインコンパイラ
- 16. 時間の重複を確認する
- 17. 提出する前に日付の間隔を確認する
- 18. 時間間隔を表すJava 8クラス
- 19. MySQLの日時デフォルトの時間間隔
- 20. コマンド間の時間間隔esp8266
- 21. 1つのタイプ2のSCDディメンションから重複する時間間隔を確認する方法
- 22. 時間間隔/間隔を複数のビンに分割する方法
- 23. python datetime-spanを等間隔の時間間隔に分割する方法は?
- 24. R×ts - 等間隔の時間ステップxtsを等間隔の時間シリーズにリサンプリングする
- 25. Matlab:平均時間間隔ですか?
- 26. 半時間で始まる間隔でMysqlの時間平均
- 27. シグナル:時間間隔で値を収集
- 28. 分割時間間隔をバッチで
- 29. SQLiteで時間間隔を保存
- 30. 入力日時から時間間隔をマークする方法
時間や分を測定するだけですか? –
@DávidPásztor分 –