繁体   English   中英

两个日期之间的天数,并存储在变量中

[英]Days between two dates and store in variable

如何在变量中存储两个日期之间的计算天数,以便可以在CloudKit中存储“天数”

我的代码是(正在计算日期之间的天数):

let calendar = NSCalendar.currentCalendar()

    let components = calendar.components([.Day], fromDate: datepicked, toDate: enddate, options: [])

    print("DAYS LEFT :" , components)

结果是:

DAYS LEFT : <NSDateComponents: 0x7fd399ccb890>
Day: 1095

⌥-单击变量components ,然后在弹出视图中单击NSDateComponents

在文档中,您可以看到有一个属性day来获取.Day组件的值。

var day:整数

所以写

let day = components.day

我这里有一段代码,用于计算Objective-C中两次之间的小时数。 我敢肯定,您可以重写此代码以使其成为现实。

- (void)updateTimer {
    NSDateFormatter *df = [[NSDateFormatter alloc] init];
    [df setDateFormat:@"dd-MM-yyyy HH:mm:ss"];

    /* instead of conceptDate the date of the started and stopped time will be used when the database is edited so
     date is nog a seperate column but is included in the colums start and stop to display working times that exceed
     the 00.00 timestamp or take multiple days (for somewhat reason)*/

    NSDate *date1 = [df dateFromString:[NSString stringWithFormat:@"%@ %@", [self conceptDate], startedTime]];
    NSDate *date2 = [df dateFromString:[NSString stringWithFormat:@"%@ %@", [self conceptDate], [self getCurrentTime]]];
    NSTimeInterval interval = [date2 timeIntervalSinceDate:date1];

    if( interval  < 0 ) {
        interval = [date1 timeIntervalSinceDate:date2];
    }

    int hours = (int)interval / 3600;             // integer division to get the hours part
    int minutes = (interval - (hours*3600)) / 60; // interval minus hours part (in seconds) divided by 60 yields minutes
    int seconds = (interval - (hours*3600) - (minutes*60)); // interval minus hours part (in seconds) divided by 60 yields minutes

    NSString *timeDiff = [NSString stringWithFormat:@"%02d:%02d:%02d", hours, minutes, seconds];
    _workingTime.text = [NSString stringWithFormat:@"%@",timeDiff];
 }

我希望这有帮助。 当前,时差存储在_workingTime对象中,但是当然可以存储在另一个字符串变量中。

如果您希望两天之间有几天,那么应该尝试一下。

 func daysFrom(FromDate:NSDate,ToDate:NSDate) -> Int{
    return  NSCalendar.currentCalendar().components(NSCalendarUnit.Calendar.exclusiveOr(NSCalendarUnit.Day), fromDate: date, toDate: ToDate, options: NSCalendarOptions.WrapComponents).day
}

斯威夫特4

func days(from:Date,to:Date) -> Int {
    return  Calendar.current.dateComponents([.day], from: from, to: to).day!
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM