| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- //
- // TimeInterval+Extension.swift
- // Lanu
- //
- // Created by OneeChan on 2025/11/20.
- //
- import Foundation
- extension TimeInterval {
- // 辅助方法:格式化 "时:分"(补零,如 09:05)
- func formattedTime() -> String {
- Date(timeIntervalSince1970: self).formattedTime()
- }
-
- // 辅助方法:格式化 "星期一"
- func formattedWeek() -> String {
- Date(timeIntervalSince1970: self).formattedWeek()
- }
-
- // 辅助方法:格式化 "星期 时:分"(如 星期一 09:30)
- func formattedWeekWithTime() -> String {
- Date(timeIntervalSince1970: self).formattedWeekWithTime()
- }
-
- // 辅助方法:格式化 "月/日"(如 10/23)
- func formattedDate(_ separator: String = "/") -> String {
- Date(timeIntervalSince1970: self).formattedDate(separator)
- }
-
- // 辅助方法:格式化 "月/日 时:分"(如 10/23 14:30)
- func formattedDateWithTime(_ separator: String = "/") -> String {
- Date(timeIntervalSince1970: self).formattedDateWithTime(separator)
- }
-
- // 辅助方法:格式化 "年/月/日"(如 2025/10/23)
- func formattedFullDate(_ separator: String = "/", normal: Bool = false) -> String {
- Date(timeIntervalSince1970: self).formattedFullDate(separator, normal: normal)
- }
-
- // 辅助方法:格式化 "年/月/日 时:分"(如 2025/10/23 14:30)
- func formattedFullDateWithTime(_ separator: String = "/") -> String {
- Date(timeIntervalSince1970: self).formattedFullDateWithTime(separator)
- }
- }
- extension TimeInterval {
- var tencentIMTimeDesc: String {
- Date(timeIntervalSince1970: self).tencentIMTimeDesc
- }
-
- var relativeTimeText: String {
- guard curTime > self else { return .init(key: "A00352") }
-
- let diff = Int(curTime - self)
- if diff < 60 {
- return .init(key: "A00352")
- }
-
- let minute = diff / 60
- if minute < 60 {
- return minute == 1 ? .init(key: "A00353", minute) : .init(key: "A00354", minute)
- }
-
- let hour = minute / 60
- if hour < 24 {
- return hour == 1 ? .init(key: "A00355", hour) : .init(key: "A00356", hour)
- }
-
- let day = hour / 24
- return day == 1 ? .init(key: "A00357", day) : .init(key: "A00358", day)
- }
- }
- extension TimeInterval {
- var inMinutes: Bool {
- curTime - self < 60
- }
-
- var inHour: Bool {
- curTime - self < 3600
- }
-
- var inDay: Bool {
- curTime - self < 3600 * 24
- }
-
- var isSameDay: Bool {
- Calendar.current.isDate(Date(), inSameDayAs: Date(timeIntervalSince1970: self))
- }
- }
|