【问题标题】:obj-c : iphone programming NSTimeInterval problemobj-c : iphone 编程 NSTimeInterval 问题
【发布时间】:2010-06-16 16:48:59
【问题描述】:

我的时间间隔有问题。我需要以这种格式获得两次的间隔:HH:MM。如果我输入:15:35 和 16:35 没关系,但是当我输入 20:30 到 01:30 时,它给了我 18 小时的间隔.. 有人知道吗?

        NSString *startDate= starthere.text;
    NSString *endDate = endhere.text;


    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"HH:mm"];

    NSDate *dateSelected = [dateFormatter dateFromString:startDate];        
    NSDate *dateSelected2 = [dateFormatter dateFromString:endDate];
    [dateFormatter release];





        if ([dateSelected2 earlierDate:dateSelected] == dateSelected2)
        {
            dateSelected2 = [dateSelected2 dateByAddingTimeInterval:86400];
        }





interval = [dateSelected2 timeIntervalSinceDate:dateSelected];

【问题讨论】:

    标签: objective-c time intervals


    【解决方案1】:

    您的结束日期在您的开始日期之前,因此它们之间有 19 个小时。如果比较早于开始日期,则快速解决方法可能是将结束日期添加 24 小时。比如:

    if ([dateSelected2 earlierDate:dateSelected] == dateSelected2)
    {
        dateSelected2 = [dateSelected2 dateByAddingTimeInterval:86400];
    }
    

    NSDate documentation 拥有您需要知道的一切。

    【讨论】:

    • @th1nz4ne,它在这里对我有用。您使用的是旧版本的 OS X 吗?如果您使用的是 10.6 之前的版本,则需要 addTimeInterval: 而不是 dateByAddingTimeInterval:
    • 我使用了添加时间间隔,它可以工作......它很奇怪我有 10.6
    猜你喜欢
    • 2011-10-22
    • 1970-01-01
    • 1970-01-01
    • 2011-03-05
    • 2011-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多