Guest User

Untitled

a guest
Dec 15th, 2017
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.32 KB | None | 0 0
  1. //
  2. // HCDateExtension.swift
  3. // TrainSchedule
  4. //
  5. // Created by HungChun on 2017/12/1.
  6. // Copyright © 2017年 TSUMII STUDIO. All rights reserved.
  7. //
  8.  
  9. import Foundation
  10. enum TimeDateUnit
  11. {
  12. case Day,Hour,Minute,Second
  13. }
  14. extension Date {
  15. static func format(formatString:String,dateString:String) -> Date {
  16. let dateFormatter = DateFormatter()
  17. dateFormatter.dateFormat = formatString
  18. return dateFormatter.date(from: dateString)!
  19. }
  20.  
  21. var year: Int {
  22. let gregorian = Calendar(identifier: Calendar.Identifier.gregorian)
  23. return gregorian.component(Calendar.Component.year, from: self)
  24. }
  25.  
  26. var month: Int {
  27. let gregorian = Calendar(identifier: Calendar.Identifier.gregorian)
  28. return gregorian.component(Calendar.Component.month, from: self)
  29. }
  30.  
  31. var day: Int {
  32. let gregorian = Calendar(identifier: Calendar.Identifier.gregorian)
  33. return gregorian.component(Calendar.Component.day, from: self)
  34. }
  35.  
  36. var hour: Int {
  37. let gregorian = Calendar(identifier: Calendar.Identifier.gregorian)
  38. return gregorian.component(Calendar.Component.hour, from: self)
  39. }
  40.  
  41. var minute: Int {
  42. let gregorian = Calendar(identifier: Calendar.Identifier.gregorian)
  43. return gregorian.component(Calendar.Component.minute, from: self)
  44. }
  45.  
  46. var second: Int {
  47. let gregorian = Calendar(identifier: Calendar.Identifier.gregorian)
  48. return gregorian.component(Calendar.Component.second, from: self)
  49. }
  50.  
  51. func add(unit:TimeDateUnit,mount:Int) -> Date {
  52. return self.addingTimeInterval(Double(increaseTime(unit: unit) * mount))
  53. }
  54.  
  55. func subtract(unit:TimeDateUnit,mount:Int) -> Date {
  56. return self.addingTimeInterval(-Double(increaseTime(unit: unit) * mount))
  57. }
  58.  
  59. func increaseTime(unit:TimeDateUnit) -> Int {
  60. var increase = 0
  61. switch unit {
  62. case .Day:
  63. increase = 24 * 60 * 60
  64. case .Hour:
  65. increase = 60 * 60
  66. case .Minute:
  67. increase = 60
  68. case .Second:
  69. increase = 1
  70. }
  71. return increase;
  72. }
  73.  
  74. func toString(format:String) -> String{
  75. let dateFormatter = DateFormatter()
  76. dateFormatter.dateFormat = format
  77. return dateFormatter.string(from: self)
  78. }
  79. }
Add Comment
Please, Sign In to add comment