是一个相同的星期,月,年的另一个日期在swift中的日期 [英] Is a date in same week, month, year of another date in swift
本文介绍了是一个相同的星期,月,年的另一个日期在swift中的日期的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
了解日期与同一周(或年或月)的最佳方式是什么,最好是扩展名,仅使用Swift ?
What is the best way to know if a date is in the same week (or year or month) as another, preferably with an extension, and solely using Swift?
例如,在Objective-C中我有
As an example, in Objective-C I have
- (BOOL)isSameWeekAs:(NSDate *)date {
NSDateComponents *otherDay = [[NSCalendar currentCalendar] components:NSCalendarUnitEra | NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay fromDate:self];
NSDateComponents *today = [[NSCalendar currentCalendar] components:NSCalendarUnitEra | NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay fromDate:date];
return ([today weekOfYear] == [otherDay weekOfYear] &&
[today year] == [otherDay year] &&
[today era] == [otherDay era]);
}
请不要提出桥接日期的解决方案
到 NSDate
推荐答案
您可以使用日历方法 isDate(equalTo:granularity:)
将其检查如下:
You can use calendar method isDate(equalTo:granularity:)
to check it as follow:
extension Date {
func isInSameWeek(date: Date) -> Bool {
return Calendar.current.isDate(self, equalTo: date, toGranularity: .weekOfYear)
}
func isInSameMonth(date: Date) -> Bool {
return Calendar.current.isDate(self, equalTo: date, toGranularity: .month)
}
func isInSameYear(date: Date) -> Bool {
return Calendar.current.isDate(self, equalTo: date, toGranularity: .year)
}
func isInSameDay(date: Date) -> Bool {
return Calendar.current.isDate(self, equalTo: date, toGranularity: .day)
}
var isInThisWeek: Bool {
return isInSameWeek(date: Date())
}
var isInToday: Bool {
return Calendar.current.isDateInToday(self)
}
var isInTheFuture: Bool {
return Date() < self
}
var isInThePast: Bool {
return self < Date()
}
}
这篇关于是一个相同的星期,月,年的另一个日期在swift中的日期的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文