计算两个日期的天数问题

Posted Soul丶凯少

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算两个日期的天数问题相关的知识,希望对你有一定的参考价值。

  工程中,我们偶尔需要用到计算两个日期之间的年、月、日数分别是多少。这时候有个简单的方法而不是时间戳去转化计算显得格外重要。

  话不多说,上代码:

 1 // 获取某一时间(默认为当前时间)若干年、月、日之后的时间NSDate
 2 + (NSDate *)dateWithFromDate:(NSDate * _Nullable)date years:(NSInteger)years months:(NSInteger)months days:(NSInteger)days{
 3     
 4     NSDate  * latterDate;
 5     
 6     // 判断是否传进来了日期NSDate:若有,则使用;若没有,则使用当前日期
 7     if (date) {
 8         
 9         latterDate = date;
10     }else{
11         
12         latterDate = [NSDate date];
13     }
14     
15     // 初始化 日历
16     NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
17     
18     // 初始化 时间成分;它的各个属性就是 年月日时分秒
19     NSDateComponents *comps = [calendar components:NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay|NSCalendarUnitHour|NSCalendarUnitMinute fromDate:latterDate];
20     
21     [comps setYear:years];
22     [comps setMonth:months];
23     [comps setDay:days];
24     
25     return [calendar dateByAddingComponents:comps toDate:latterDate options:0];
26 }
1     @objc private func prepareDays(date: NSDate) -> NSInteger {
2         
3         let calendar: NSCalendar = NSCalendar.init(calendarIdentifier: NSCalendarIdentifierGregorian)!
4         
5         let comp: NSDateComponents = calendar.components(NSCalendarUnit.Day, fromDate: date, toDate: NSDate(), options: NSCalendarOptions.WrapComponents)
6         
7         return comp.day
8     }

  两种方法都是利用 NSDateComponents 这一类型来获取具体的天数的。

以上是关于计算两个日期的天数问题的主要内容,如果未能解决你的问题,请参考以下文章

关于如何通过日期计算天数

Java,计算两个日期之间的天数[重复]

如何在VB中计算两个日期间的天数

如何计算两个日期之间的天数

计算两个日期之间的天数[重复]

在html中计算两个输入类型=“日期”之间的天数[重复]