私は2つの日付を持っています。それらの間に30日の違いがあるかどうかを確認するにはどうすればよいですか?私は実際にアプリ内購入を行っていますが、購入から30日ごとに無効にする必要があります。ユーザーが機能を購入すると、日付が保存されるので、日付を確認する必要があります。30日が経過した場合は、この機能を再度無効にする必要があります。
質問する
1808 次
3 に答える
6
timeIntervalSince1970を使用して両方の日付を秒に変換し、差が2592000(30 * 24 * 60 * 60、つまり30日*24時間*60分*60秒)より大きいかどうかを確認できます。
NSTimeInterval difference = [date1 timeIntervalSince1970] - [date2 timeIntervalSince1970];
if(difference >2592000)
{
//do your stuff here
}
編集:よりコンパクトなバージョンの場合は、-(NSTimeInterval)timeIntervalSinceDate:(NSDate *)anotherDateを使用できます
NSTimeInterval difference = [date1 timeIntervalSinceDate:date2];
if(difference >2592000)
{
//do your stuff here
}
于 2012-07-12T11:46:21.337 に答える
1
次の方法で開始NSDateと終了NSDateを指定します。
NSDate *date_Start;
NSDate *date_End;
NSCalendar *cal=[NSCalendar currentCalendar];
NSDateComponents *components=[cal components:NSDayCalendarUnit fromDate:date_Start toDate:date_End options:0];
int days=[components day];
if(days>30){
//Your code here
}
于 2012-07-12T12:51:25.730 に答える
-1
今から+30日後の日付を作成できます:
NSDate *thrityDaysPlus = [[NSDate date] dateByAddingTimeInterval:3600*24*30]
保存した日付と比較するだけです
if ([date1 compare:date2] == NSOrderedDescending) {
NSLog(@"date1 is later than date2");
} else if ([date1 compare:date2] == NSOrderedAscending) {
NSLog(@"date1 is earlier than date2");
} else {
NSLog(@"dates are the same");
}
于 2012-07-12T11:45:06.740 に答える