-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天,以获得该月的最后一天。 –