TimeInterval.swift 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. //
  2. // TimeInterval.swift
  3. // MinimedKitTests
  4. //
  5. // Created by Pete Schwamb on 3/19/23.
  6. // Copyright © 2023 LoopKit Authors. All rights reserved.
  7. //
  8. import Foundation
  9. extension TimeInterval {
  10. static func days(_ days: Double) -> TimeInterval {
  11. return self.init(days: days)
  12. }
  13. static func hours(_ hours: Double) -> TimeInterval {
  14. return self.init(hours: hours)
  15. }
  16. static func minutes(_ minutes: Int) -> TimeInterval {
  17. return self.init(minutes: Double(minutes))
  18. }
  19. static func minutes(_ minutes: Double) -> TimeInterval {
  20. return self.init(minutes: minutes)
  21. }
  22. static func seconds(_ seconds: Double) -> TimeInterval {
  23. return self.init(seconds)
  24. }
  25. static func milliseconds(_ milliseconds: Double) -> TimeInterval {
  26. return self.init(milliseconds / 1000)
  27. }
  28. init(days: Double) {
  29. self.init(hours: days * 24)
  30. }
  31. init(hours: Double) {
  32. self.init(minutes: hours * 60)
  33. }
  34. init(minutes: Double) {
  35. self.init(minutes * 60)
  36. }
  37. init(seconds: Double) {
  38. self.init(seconds)
  39. }
  40. init(milliseconds: Double) {
  41. self.init(milliseconds / 1000)
  42. }
  43. var milliseconds: Double {
  44. return self * 1000
  45. }
  46. init(hundredthsOfMilliseconds: Double) {
  47. self.init(hundredthsOfMilliseconds / 100000)
  48. }
  49. var hundredthsOfMilliseconds: Double {
  50. return self * 100000
  51. }
  52. var minutes: Double {
  53. return self / 60.0
  54. }
  55. var hours: Double {
  56. return minutes / 60.0
  57. }
  58. var days: Double {
  59. return hours / 24.0
  60. }
  61. }