首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >NSDate - timeIntevalSinceDate -

NSDate - timeIntevalSinceDate -
EN

Stack Overflow用户
提问于 2011-07-02 20:05:39
回答 3查看 401关注 0票数 1

我有2个文本字段,用户可以插入2次(即12:00 ie和15:00 ie)和一个返回小时数(即3小时)的标签。我使用的是timeIntervalSinceDate,但我只用了几秒钟(10800秒,相当于3个小时)。如何获取以小时为单位的值?代码如下:

代码语言:javascript
运行
复制
-(IBAction)calcoloBlockTime{
   NSString *blockOff = [NSString stringWithFormat:@"%@", [offBlock text]];
   NSString *blockIn= [NSString stringWithFormat: @"%@", [inBlock text]];
   NSDateFormatter *dateFormatter =[[NSDateFormatter alloc]init];
   [dateFormatter setDateFormat:@"HHmm"];
   NSDate *dateFromString = [dateFormatter dateFromString:blockOff];
   NSDate *dateFromString2 = [dateFormatter dateFromString:blockIn];
   NSLog(@"Time elapsed: %f", [dateFromString2 timeIntervalSinceDate:dateFromString]);
}

提前谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-07-02 20:07:38

如果你只对小时感兴趣,你可以写:

NSInteger小时= 10800 / 3600;//您知道一小时有3600秒

如果你想要分钟等,你将继续10800模3600的结果,这将给你除以3600后剩下的秒数。

NSInteger temp = 10800 % 3600;

NSInteger分钟=温度/ 60;

要获得剩余的秒数,您可以这样写:

NSInteger秒=分钟% 60;

编辑

代码语言:javascript
运行
复制
myLabel.text = [NSString stringWithFormat:@"%d hours", hours];

如果您想在标签上设置小时数。

票数 3
EN

Stack Overflow用户

发布于 2011-07-02 20:08:05

小时=秒/ 3600;简单!而且,似乎没有办法从NSDate那里得到这个小时。您可以使用,但对于您的需求来说,它们的成本太高了。

票数 1
EN

Stack Overflow用户

发布于 2011-11-09 03:11:55

我创建了一个类方法,它返回一个字符串,该字符串的格式日期是从NSDate到现在的剩余时间。

代码语言:javascript
运行
复制
+(NSString *)TimeRemainingUntilDate:(NSDate *)date {

    NSTimeInterval interval = [date timeIntervalSinceNow];
    NSString * timeRemaining = nil;

    if (interval > 0) {

        div_t d = div(interval, 86400);
        int day = d.quot;
        div_t h = div(d.rem, 3600);
        int hour = h.quot;
        div_t m = div(h.rem, 60);
        int min = m.quot;

        NSString * nbday = nil;
        if(day > 1)
            nbday = @"days";
        else if(day == 1)
            nbday = @"day";
        else
            nbday = @"";
        NSString * nbhour = nil;
        if(hour > 1)
            nbhour = @"hours";
        else if (hour == 1)
            nbhour = @"hour";
        else
            nbhour = @"";
        NSString * nbmin = nil;
        if(min > 1)
            nbmin = @"mins";
        else
            nbmin = @"min";

        timeRemaining = [NSString stringWithFormat:@"%@%@ %@%@ %@%@",day ? [NSNumber numberWithInt:day] : @"",nbday,hour ? [NSNumber numberWithInt:hour] : @"",nbhour,min ? [NSNumber numberWithInt:min] : @"",nbmin];
    }
    else
        timeRemaining = @"Over";

    return timeRemaining;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6556883

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档