// // NYMacros.swift // JSJP_Student_sw // // Created by Ning.ge on 2023/6/6. // struct NYMacros { //应用名 static let appName = Bundle.main.object(forInfoDictionaryKey: "CFBundleDisplayName") //应用版本 static let appVersion = Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") //应用build static let appBuild = Bundle.main.object(forInfoDictionaryKey: "CFBundleVersion") //友盟key static let appMenKey = "648bf1ac87568a379b57b0cd" //bugly key static let appbuglyKey = "4c23a341-cdbb-4139-9da3-2377aad1abee" static let appbuglyId = "9318ff6ab4" ///------ /// iOS Version ///------ static let iOSVersion = Float(UIDevice.current.systemVersion) ?? 0.0 static let iOS7OrLater = iOSVersion >= 7.0 static let iOS8OrLater = iOSVersion >= 8.0 static let iOS9OrLater = iOSVersion >= 9.0 static let iOS10OrLater = iOSVersion >= 10.0 static let iOS11OrLater = iOSVersion >= 11.0 static let iOS12OrLater = iOSVersion >= 12.0 static let iOS13OrLater = iOSVersion >= 13.0 static let iOS14OrLater = iOSVersion >= 14.0 static let iOS15OrLater = iOSVersion >= 15.0 // //时间戳 // static func t() -> String { // return String(format: "%.f", Date().timeIntervalSince1970) // } // static func ts() -> String { // return String(format: "%.f", Date().timeIntervalSince1970*1000) // } // //生成设备ID // static func deviceID() -> String { // var deviceIDStr: String? = nil // if deviceIDStr == nil { // deviceIDStr = SAMKeychain.deviceId() // } // return deviceIDStr?.isEmpty == false ? deviceIDStr! : "" // } } //存放-常用-源 struct NYSource { static let statedicts:[String:String] = ["1":"一","2":"二","3":"三","4":"四","5":"五"] } struct NYDate { //获取当前时间 static func getThisDate()->String { let currentDate = Date() let dateFormatter = DateFormatter() dateFormatter.dateFormat = "YYYY-MM-dd" return dateFormatter.string(from: currentDate) } //获取昨日时间 static func getLastDate()->String { let calendar = Calendar.current let yesterday = calendar.date(byAdding: .day, value: -1, to: Date()) let dateFormatter = DateFormatter() dateFormatter.dateFormat = "YYYY-MM-dd" if let yesterdayDate = yesterday { let yesterdayString = dateFormatter.string(from: yesterdayDate) return yesterdayString } return "" } //获取当月 static func getDateMonth()-> [String] { let calendar = Calendar.current let currentDate = Date() // 获取本月的起始日期 let startDate = calendar.date(from: calendar.dateComponents([.year, .month], from: calendar.startOfDay(for: currentDate)))! // 获取本月的结束日期 let endDate = calendar.date(byAdding: DateComponents(month: 1, day: -1), to: startDate)! let dateFormatter = DateFormatter() dateFormatter.dateFormat = "YYYY-MM-dd" let startDateString = dateFormatter.string(from: startDate) let endDateString = dateFormatter.string(from: endDate) return [startDateString,endDateString] } //获取上月 static func getDateMonthLast()-> [String] { let calendar = Calendar.current let currentDate = Date() // 获取上个月的起始日期 var dateComponents = calendar.dateComponents([.year, .month], from: currentDate) dateComponents.month! -= 1 let startDate = calendar.date(from: dateComponents)! // 获取上个月的结束日期 let range = calendar.range(of: .day, in: .month, for: startDate)! let lastDayOfMonth = range.upperBound - 1 dateComponents.day = lastDayOfMonth let endDate = calendar.date(from: dateComponents)! let dateFormatter = DateFormatter() dateFormatter.dateFormat = "YYYY-MM-dd" let startDateString = dateFormatter.string(from: startDate) let endDateString = dateFormatter.string(from: endDate) return [startDateString,endDateString] } //获取近n月 static func getDateMonthSectionNum(num:Int)-> [String] { let calendar = Calendar.current let currentDate = Date() // 获取当前月份的起始日期 let currentMonthStartDate = calendar.date(from: calendar.dateComponents([.year, .month], from: calendar.startOfDay(for: currentDate)))! // 计算近三个月之前的日期 let threeMonthsAgoDate = calendar.date(byAdding: DateComponents(month: num), to: currentMonthStartDate)! // 获取近三个月的起始日期 let startDate = calendar.date(from: calendar.dateComponents([.year, .month], from: threeMonthsAgoDate))! // 获取当前月份的结束日期 let currentMonthEndDate = calendar.date(byAdding: DateComponents(month: 1, day: -1), to: currentMonthStartDate)! // 获取近三个月的结束日期 let endDate = calendar.date(byAdding: DateComponents(day: -1), to: currentMonthEndDate)! let dateFormatter = DateFormatter() dateFormatter.dateFormat = "YYYY-MM-dd" let startDateString = dateFormatter.string(from: startDate) let endDateString = dateFormatter.string(from: endDate) return [startDateString,endDateString] } //获取本年 static func getDateYear()-> [String] { let calendar = Calendar.current let currentDate = Date() // 获取当前年份 let currentYear = calendar.component(.year, from: currentDate) // 构建日期组件,设置年份为当前年份,月份和日份分别为1 var dateComponents = DateComponents() dateComponents.year = currentYear dateComponents.month = 1 dateComponents.day = 1 let dateFormatter = DateFormatter() dateFormatter.dateFormat = "YYYY-MM-dd" // 获取本年起始日期 var startDateString = "" if let startDate = calendar.date(from: dateComponents) { startDateString = dateFormatter.string(from: startDate) } // 获取本年结束日期 var endDateString = "" dateComponents.year = currentYear + 1 dateComponents.day = -1 if let endDate = calendar.date(from: dateComponents) { //calendar.date(byAdding: DateComponents(year: 1, day: -1), to: currentDate) { endDateString = dateFormatter.string(from: endDate) } return [startDateString,endDateString] } //获取近n年 static func getDateYearSectionNum(num:Int)-> [String] { let calendar = Calendar.current let currentDate = Date() // 获取当前年份 let currentYear = calendar.component(.year, from: currentDate) // 计算起始年份 let startYear = currentYear - num // 构建日期组件,设置年份为起始年份,月份和日份分别为1 var dateComponents = DateComponents() dateComponents.year = startYear dateComponents.month = 1 dateComponents.day = 1 let dateFormatter = DateFormatter() dateFormatter.dateFormat = "YYYY-MM-dd" // 获取起始日期 var startDateString = "" if let startDate = calendar.date(from: dateComponents) { startDateString = dateFormatter.string(from: startDate) } // 获取结束日期 var endDateString = "" dateComponents.year = currentYear+1 dateComponents.month = 1 dateComponents.day = -1 if let endDate = calendar.date(from: dateComponents) { //calendar.date(byAdding: DateComponents(year: num, day: -1), to: currentDate) { endDateString = dateFormatter.string(from: endDate) } return [startDateString,endDateString] } }