NYMacros.swift 7.8 KB

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