【问题标题】:How do I calculate date count difference between my app installed and device date from objective C [duplicate]如何从目标 C 计算我的应用程序安装日期和设备日期之间的日期计数差异 [重复]
【发布时间】:2013-04-16 19:42:58
【问题描述】:

如何计算objectice C 格式中两天之间的日期计数差异

【问题讨论】:

标签: iphone ios objective-c ios5 nsdate


【解决方案1】:

第一次运行时将您的设备安装日期存储在NSUserDefaults 中,然后使用当前日期计算该日期。

NSTimeInterval diff = [date2 timeIntervalSinceDate:date1]; // in seconds

【讨论】:

  • 请注意,这并未考虑时间变化、闰年等。您不应以这种方式计算两个日期之间的“天数”。
【解决方案2】:

如果您的意思是“试用时间”,然后您必须注册:我会按照以下方式进行:

    NSDate *installDate = [[NSUserDefaults standardUserDefaults] objectForKey:@"InstallationDate"];
    if(installDate)
    {
        // time in Seconds
        long int timePassed = [installDate timeIntervalSinceNow] * -1;
        NSLog(@"%ld", timePassed);

        // now do your calculations and compare
    }
    else // first start
    {
        [[NSUserDefaults standardUserDefaults] setObject:[NSDate date] forKey:@"InstallationDate"];
        [[NSUserDefaults standardUserDefaults] synchronize];

        NSLog(@"%@", [[NSUserDefaults standardUserDefaults] objectForKey:@"InstallationDate"]);
    }

(作为 Danny 帖子的补充)

【讨论】:

    【解决方案3】:

    检查安装日期是否已注册,如果已注册则计算日期,否则请注册。

    if([[NSUserDefaults standardUserDefaults] objectForKey:@"IDate"])
    {
        NSDate *iDate = [[NSUserDefaults standardUserDefaults] objectForKey:@"IDate"];
        NSTimeInterval interval = [[NSDate date] timeIntervalSinceDate:iDate];
        int diff=interval/86400;//for converting seconds into days.
        NSLog(@"%d Days",diff);
    }
    else
    {
        [[NSUserDefaults standardUserDefaults] setObject:[NSDate date] forKey:@"IDate"];
        [[NSUserDefaults standardUserDefaults] synchronize];
    }
    

    【讨论】:

    • 它给了我灵感,谢谢
    猜你喜欢
    • 1970-01-01
    • 2016-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多