NYMacros.swift 8.7 KB

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