/// 时间间隔转换为分秒
static func timeMinuteSecondFormatted(totalSeconds: Int) -> String {
let seconds = totalSeconds % 60
let minutes = (totalSeconds / 60) % 60
return String(format: "%02d:%02d", minutes, seconds)
}
/// 时间转换为时分秒
static func timeHourMinuteSecondFormatted(totalSeconds: Int) -> String {
let second = totalSeconds % 60
let minutes = (totalSeconds / 60) % 60
let hours = totalSeconds / 3600
return String(format: "%02d:%02d:%02d", hours, minutes, seconds)
}
/// 时间戳转对应时区的时分秒
static func hourMinuteFormatted(timeInterval: TimeInterval) -> String {
let date = Date(timeIntervalSince1970: timeInterval)
let formatter = DateFormatter()
/// 指定对应的时区
formatter.timeZone = TimeZone.current
/// 格式化
formatter.dateFormat = "HH:mm:ss"
return formatter.string(from: date)
}
// MARK: - Date Extension
/// 是否为今天
func isToday() -> Bool {
let calendar = Calendar.init(identifier: .gregorian)
let nowComponents = calender.dateComponents([.day, .month, .year], from: Date())
let selfComponents = calender.dateComponents([.day, .month, .year], from: self as Date)
return (selfComponents.year == nowComponents.year) && (selfComponents.month == nowComponents.month) && (selfComponents.day == nowComponents.day)
}
/// 是否为昨天
func isYesterday() -> Bool {
let calendar = Calendar.init(identifier: .gregorian)
let nowComponents = calender.dateComponents([.day, .month, .year], from: Date())
let selfComponents = calender.dateComponents([.day, .month, .year], from: self as Date)
let cmps = calender.dateComponents([.day], from: selfComponents, to: nowComponents)
return cmps.day == 1
}
/// 是否为同一周
func isSameWeek() -> Bool {
let calendar = Calendar.init(identifier: .gregorian)
let nowComponents = calender.dateComponents([.day, .month, .year], from: Date())
let selfComponents = calender.dateComponents([.weekday, .month, .year], from: self as Date)
return (selfComponents.year == nowComponents.year) && (selfComponents.month == nowComponents.month) && (selfComponents.weekday == nowComponents.weekday)
}
/// 周几
func weakdayStringFromDate() {
let weekdays: NSArray = ["Sun", "Mon", "Tues", "Wed", "Thur", "Fri", "Sat"]
let calendar = Calender.init(identifier: .gregorian)
/// 设置指定的时区
let timeZone = TimeZone.current
calender.timeZone = timeZone
let theComponents = calendar.dateComponents([.weekday], from: self as Date)
return weekdays.object(at: theComponents.weekday!) as! String
}
/// 转年龄
func ageFromDate() -> Int {
let components1 = NSCalendar.current.dateComponents([.day, .month, .year], from: self as Date)
let components2 = NSCalendar.current.dateComponents([.day, .month, .year], from: Date())
var age = (components2.year ?? 0) - (components1.year ?? 0) - 1
if (components1.month ?? 0 > components2.month ?? 0) ||
(components1.month ?? 0 == components2.month ?? 0
&& components1.day ?? 0 >= components2.day ?? 0) {
age += 1
}
return age
}
网友评论