public extension Date {
var day: Int {
return Calendar.current.component(Calendar.Component.day, from: self)
}
var month: Int {
return Calendar.current.component(Calendar.Component.month, from: self)
}
var year: Int {
return Calendar.current.component(Calendar.Component.year, from: self)
}
/// 是否在未来
var isInFuture: Bool {
return self > Date()
}
/// 是否在过去
var isInPast: Bool {
return self < Date()
}
/// 是否在本天
var isInToday: Bool {
return self.day == Date().day && self.month == Date().month && self.year == Date().year
}
/// 是否在本月
var isInMonth: Bool {
return self.month == Date().month && self.year == Date().year
}
//获得当前月份第一天星期几
var weekdayForFirstday: Int {
var calendar = Calendar.current
calendar.firstWeekday = 1
var comp = calendar.dateComponents([.year, .month, .day], from: self)
comp.day = 1
let firstDayInMonth = calendar.date(from: comp)!
let weekday = calendar.ordinality(of: Calendar.Component.weekday, in: Calendar.Component.weekOfMonth, for: firstDayInMonth)
return weekday! - 1
}
// 获得一个月总天数
var daysInMonth: Int {
return Calendar.current.range(of: Calendar.Component.day, in: Calendar.Component.month, for: self)!.count
}
/// 获取其他月的数据
///
/// - Parameter poor: 与当前的date相差几个月 (-1---上月, 1---下月)
/// - Returns: 目标date
func getOtherMonthDate(_ poor: Int) -> Date {
var dateComponents = DateComponents()
dateComponents.month = poor
return Calendar.current.date(byAdding: dateComponents, to: self)!
}
}
swift Date拓展 用于写日历
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...