2011-12-06 11 views
0

これはここの状況です。私は現在の時代を持っています。また、私は日数を持っています。過去の時代をエポック形式で表現する2の違いを見たいと思っています。すなわち、iOSの違いは2回

currentEpochTime - 過去のエポック形式での(x日)。

これは私がこれまでに得たものである -

+ (double)currTimeInEpoch 
{ 
    NSDate *todayDate = [NSDate date]; 
    double ti   = [todayDate timeIntervalSince1970]*1000; 
    return ti;  
} 

+ (NSString *)timeDiff:(double)epoch diff:(double)diffInDays 
{ 
    double past = epoch - (diffInDays * 24 * 60 * 60 * 1000); 
    return [[NSNumber numberWithDouble:past] stringValue]; 
} 

は、私が正しいやっているとは何ですか?それについてはわからない。これを行う簡単な方法はありますか?

+0

1日あたりの秒数をハードコーディングすると、数日間エラーが発生することにご注意ください。私はなぜ、いつ覚えていないのですが、それよりも少なくても数秒かかる日があります。アップルのAPIの多くを使用することを検討する必要があります –

+0

一般的なアプローチは正しいですか? "もっと多くのリンゴAPI"は何ですか?彼らに私を指差して気にしない? –

+0

NSCalander、NSDate、NSDateComponentsのようなものを使用する –

答えて

2

一人で行くのは危険です。これを取る。

NSDateComponents *dateComponents = [[NSDateComponents alloc] init]; 
dateComponents.day = -40; // Number of days to subtract 
NSDate *newDate = [[NSCalendar autoupdatingCurrentCalendar] dateByAddingComponents:dateComponents toDate:[NSDate date] options:0]; 
NSTimeInterval newDateInEpochTime = [newDate timeIntervalSince1970] * 1000; 
+0

なぜ?負の符号? –

+0

現在の日付から差し引いているためです。正の数を指定すると、将来何日もの日付が返されます。 –

+0

これは動作していないと考えています。これをチェックしてください - 'currEpoch:1323198037810.851 epochFor2DaysAgo:1323198037810.86'。 where 'dateComponents.day = 2'となります。そしてどちらも同じです! –

関連する問題