如何在swift3中获取两个日期之间的日历日[重复]

Posted

技术标签:

【中文标题】如何在swift3中获取两个日期之间的日历日[重复]【英文标题】:How to get calendar days between two dates in swift3 [duplicate] 【发布时间】:2016-11-04 15:08:01 【问题描述】:

我正在尝试通过以下编码来确定 swift3 中两个日期之间的天数。不幸的是,我遇到错误并且运行失败。请让我知道如何解决以及如何在 swift3 中获取两个日期之间的日历天数。

static func getDaysList(_ startDate:String, endDate:String, interval:Int) -> [Date] 
    var dayRange = [Date]()
    let inter = TimeInterval(interval * 60 * 60)
    let ti:TimeInterval = inter
    let dateFormatter = DateFormatter()
    dateFormatter.dateFormat = datetimeformat
    let dateTo = dateFormatter.date(from: endDate)

    var nextDate = dateFormatter.date(from: startDate)
    let endDate = dateTo!.addingTimeInterval(ti)
    var startTime = NSDate()

    while nextDate!.compare(endDate) == ComparisonResult.orderedAscending 
        startTime = nextDate! as NSDate
        dayRange.append(startTime as Date)
        nextDate = nextDate!.addingTimeInterval(ti)
        startTime = nextDate! as NSDate
    

    return dayRange

致命错误:在展开可选值时意外发现 nil

指向let endDate = dateTo!.addingTimeInterval(ti)

【问题讨论】:

“获得日历日”是什么意思?“好的”输出是什么? 还有什么错误?在哪几行? @matt 两个日期之间的天数。 我不知道那是什么意思。我知道约会是什么。但是你心目中的“一天”是什么?我是认真的:显示示例输入和所需的输出。我无法想象你在这里有什么想法。 @rmaddy 我已经编辑了我的问题。 【参考方案1】:

这里

 let dateTo = dateFormatter.date(from: endDate)

您的endDate 可能是一个与dateFormatter 格式不符的字符串。因此dateTonil 结束并崩溃:

let endDate = dateTo!.addingTimeInterval(ti)

【讨论】:

以上是关于如何在swift3中获取两个日期之间的日历日[重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用日历视图减去日期[重复]

如何在mysql选择查询中获取两个日期之间的日期列表[重复]

收集两个日期之间的天数[重复]

如何结合 java.util.Calendar 和 HQL 之间

试图找到如何在两个日期之间从 SQL 数据库中提取数据 [重复]

如何计算定义自定义财务日历的两个日期之间的月数?