NYMacros.swift 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219
  1. //
  2. // NYMacros.swift
  3. // JSJP_Student_sw
  4. //
  5. // Created by Ning.ge on 2023/6/6.
  6. //
  7. struct NYMacros {
  8. //应用名
  9. static let appName = Bundle.main.object(forInfoDictionaryKey: "CFBundleDisplayName")
  10. //应用版本
  11. static let appVersion = Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString")
  12. //应用build
  13. static let appBuild = Bundle.main.object(forInfoDictionaryKey: "CFBundleVersion")
  14. //友盟key
  15. static let appMenKey = "648bf1ac87568a379b57b0cd"
  16. ///------
  17. /// iOS Version
  18. ///------
  19. static let iOSVersion = Float(UIDevice.current.systemVersion) ?? 0.0
  20. static let iOS7OrLater = iOSVersion >= 7.0
  21. static let iOS8OrLater = iOSVersion >= 8.0
  22. static let iOS9OrLater = iOSVersion >= 9.0
  23. static let iOS10OrLater = iOSVersion >= 10.0
  24. static let iOS11OrLater = iOSVersion >= 11.0
  25. static let iOS12OrLater = iOSVersion >= 12.0
  26. static let iOS13OrLater = iOSVersion >= 13.0
  27. static let iOS14OrLater = iOSVersion >= 14.0
  28. static let iOS15OrLater = iOSVersion >= 15.0
  29. // //时间戳
  30. // static func t() -> String {
  31. // return String(format: "%.f", Date().timeIntervalSince1970)
  32. // }
  33. // static func ts() -> String {
  34. // return String(format: "%.f", Date().timeIntervalSince1970*1000)
  35. // }
  36. // //生成设备ID
  37. // static func deviceID() -> String {
  38. // var deviceIDStr: String? = nil
  39. // if deviceIDStr == nil {
  40. // deviceIDStr = SAMKeychain.deviceId()
  41. // }
  42. // return deviceIDStr?.isEmpty == false ? deviceIDStr! : ""
  43. // }
  44. }
  45. //存放-常用-源
  46. struct NYSource {
  47. static let statedicts:[String:String] = ["1":"一","2":"二","3":"三","4":"四","5":"五"]
  48. }
  49. struct NYDate {
  50. //获取当前时间
  51. static func getThisDate()->String {
  52. let currentDate = Date()
  53. let dateFormatter = DateFormatter()
  54. dateFormatter.dateFormat = "YYYY-MM-dd"
  55. return dateFormatter.string(from: currentDate)
  56. }
  57. //获取昨日时间
  58. static func getLastDate()->String {
  59. let calendar = Calendar.current
  60. let yesterday = calendar.date(byAdding: .day, value: -1, to: Date())
  61. let dateFormatter = DateFormatter()
  62. dateFormatter.dateFormat = "YYYY-MM-dd"
  63. if let yesterdayDate = yesterday {
  64. let yesterdayString = dateFormatter.string(from: yesterdayDate)
  65. return yesterdayString
  66. }
  67. return ""
  68. }
  69. //获取当月
  70. static func getDateMonth()-> [String] {
  71. let calendar = Calendar.current
  72. let currentDate = Date()
  73. // 获取本月的起始日期
  74. let startDate = calendar.date(from: calendar.dateComponents([.year, .month], from: calendar.startOfDay(for: currentDate)))!
  75. // 获取本月的结束日期
  76. let endDate = calendar.date(byAdding: DateComponents(month: 1, day: -1), to: startDate)!
  77. let dateFormatter = DateFormatter()
  78. dateFormatter.dateFormat = "YYYY-MM-dd"
  79. let startDateString = dateFormatter.string(from: startDate)
  80. let endDateString = dateFormatter.string(from: endDate)
  81. return [startDateString,endDateString]
  82. }
  83. //获取上月
  84. static func getDateMonthLast()-> [String] {
  85. let calendar = Calendar.current
  86. let currentDate = Date()
  87. // 获取上个月的起始日期
  88. var dateComponents = calendar.dateComponents([.year, .month], from: currentDate)
  89. dateComponents.month! -= 1
  90. let startDate = calendar.date(from: dateComponents)!
  91. // 获取上个月的结束日期
  92. let range = calendar.range(of: .day, in: .month, for: startDate)!
  93. let lastDayOfMonth = range.upperBound - 1
  94. dateComponents.day = lastDayOfMonth
  95. let endDate = calendar.date(from: dateComponents)!
  96. let dateFormatter = DateFormatter()
  97. dateFormatter.dateFormat = "YYYY-MM-dd"
  98. let startDateString = dateFormatter.string(from: startDate)
  99. let endDateString = dateFormatter.string(from: endDate)
  100. return [startDateString,endDateString]
  101. }
  102. //获取近n月
  103. static func getDateMonthSectionNum(num:Int)-> [String] {
  104. let calendar = Calendar.current
  105. let currentDate = Date()
  106. // 获取当前月份的起始日期
  107. let currentMonthStartDate = calendar.date(from: calendar.dateComponents([.year, .month], from: calendar.startOfDay(for: currentDate)))!
  108. // 计算近三个月之前的日期
  109. let threeMonthsAgoDate = calendar.date(byAdding: DateComponents(month: num), to: currentMonthStartDate)!
  110. // 获取近三个月的起始日期
  111. let startDate = calendar.date(from: calendar.dateComponents([.year, .month], from: threeMonthsAgoDate))!
  112. // 获取当前月份的结束日期
  113. let currentMonthEndDate = calendar.date(byAdding: DateComponents(month: 1, day: -1), to: currentMonthStartDate)!
  114. // 获取近三个月的结束日期
  115. let endDate = calendar.date(byAdding: DateComponents(day: -1), to: currentMonthEndDate)!
  116. let dateFormatter = DateFormatter()
  117. dateFormatter.dateFormat = "YYYY-MM-dd"
  118. let startDateString = dateFormatter.string(from: startDate)
  119. let endDateString = dateFormatter.string(from: endDate)
  120. return [startDateString,endDateString]
  121. }
  122. //获取本年
  123. static func getDateYear()-> [String] {
  124. let calendar = Calendar.current
  125. let currentDate = Date()
  126. // 获取当前年份
  127. let currentYear = calendar.component(.year, from: currentDate)
  128. // 构建日期组件,设置年份为当前年份,月份和日份分别为1
  129. var dateComponents = DateComponents()
  130. dateComponents.year = currentYear
  131. dateComponents.month = 1
  132. dateComponents.day = 1
  133. let dateFormatter = DateFormatter()
  134. dateFormatter.dateFormat = "YYYY-MM-dd"
  135. // 获取本年起始日期
  136. var startDateString = ""
  137. if let startDate = calendar.date(from: dateComponents) {
  138. startDateString = dateFormatter.string(from: startDate)
  139. }
  140. // 获取本年结束日期
  141. var endDateString = ""
  142. dateComponents.year = currentYear + 1
  143. dateComponents.day = -1
  144. if let endDate = calendar.date(from: dateComponents) {
  145. //calendar.date(byAdding: DateComponents(year: 1, day: -1), to: currentDate) {
  146. endDateString = dateFormatter.string(from: endDate)
  147. }
  148. return [startDateString,endDateString]
  149. }
  150. //获取近n年
  151. static func getDateYearSectionNum(num:Int)-> [String] {
  152. let calendar = Calendar.current
  153. let currentDate = Date()
  154. // 获取当前年份
  155. let currentYear = calendar.component(.year, from: currentDate)
  156. // 计算起始年份
  157. let startYear = currentYear - num
  158. // 构建日期组件,设置年份为起始年份,月份和日份分别为1
  159. var dateComponents = DateComponents()
  160. dateComponents.year = startYear
  161. dateComponents.month = 1
  162. dateComponents.day = 1
  163. let dateFormatter = DateFormatter()
  164. dateFormatter.dateFormat = "YYYY-MM-dd"
  165. // 获取起始日期
  166. var startDateString = ""
  167. if let startDate = calendar.date(from: dateComponents) {
  168. startDateString = dateFormatter.string(from: startDate)
  169. }
  170. // 获取结束日期
  171. var endDateString = ""
  172. dateComponents.year = currentYear+1
  173. dateComponents.month = 1
  174. dateComponents.day = -1
  175. if let endDate = calendar.date(from: dateComponents) { //calendar.date(byAdding: DateComponents(year: num, day: -1), to: currentDate) {
  176. endDateString = dateFormatter.string(from: endDate)
  177. }
  178. return [startDateString,endDateString]
  179. }
  180. }