-1
我花了近一個星期的嘗試失敗。我如何獲得當月的最後日期?例如,如果是非閏年的2月份,則該月份的最後一個日期必須是28.如何獲得'28'。另一個例子:如果是一月,則最後一個日期必須是「31」如何獲取月份的最後日期
我花了近一個星期的嘗試失敗。我如何獲得當月的最後日期?例如,如果是非閏年的2月份,則該月份的最後一個日期必須是28.如何獲得'28'。另一個例子:如果是一月,則最後一個日期必須是「31」如何獲取月份的最後日期
的方法有很多,下面介紹了其中兩個:
獲取下一個1和減1天
func lastDayOfMonth1() -> Date
{
let calendar = Calendar.current
let components = DateComponents(day:1)
let startOfNextMonth = calendar.nextDate(after:Date(), matching: components, matchingPolicy: .nextTime)!
return calendar.date(byAdding:.day, value: -1, to: startOfNextMonth)!
}
print(lastDayOfMonth1())
使用range(of:in:for:)
擺脫範圍內的最後一天,並設置相應的組件:
func lastDayOfMonth2() -> Date
{
let calendar = Calendar.current
let now = Date()
var components = calendar.dateComponents([.year, .month, .day], from: now)
let range = calendar.range(of: .day, in: .month, for: now)!
components.day = range.upperBound - 1
return calendar.date(from: components)!
}
print(lastDayOfMonth2())
在C#或vb.net我只是得到當前月份,並作出新的日期爲每月1日。然後我減去1天,以獲得該月的最後一天。 –