【问题标题】:How to get the last date of the month [duplicate]如何获取本月的最后一天[重复]
【发布时间】:2017-02-14 17:55:49
【问题描述】:

我花了将近一周的时间尝试不成功。如何获取当月的最后一天。例如,如果它是非闰年的二月,那么该月的最后一个日期必须是 28。如何获得“28”。另一个例子:如果是 1 月,那么最后日期必须是 '31'

【问题讨论】:

  • 在 c# 或 vb.net 中,我只需获取当前月份,并为该月的 1 日创建一个新日期。然后我减去 1 天,得到该月的最后一天。

标签: swift swift3


【解决方案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())

【讨论】:

    猜你喜欢
    • 2013-04-27
    • 1970-01-01
    • 2012-02-13
    • 1970-01-01
    • 1970-01-01
    • 2019-06-15
    • 1970-01-01
    • 2013-11-25
    • 1970-01-01
    相关资源
    最近更新 更多