計算某個日期和當前時間的天數差


我的某個IOS項目中,需要分組來顯示簽到記錄, 每天可能有多次簽到, 用天來對簽到記錄進行分組。

每一條簽到記錄都有一個時間字段,分組的標題就是用時間中的日期來顯示的,例如:

如果時間為 2013-1-25 01:01:01 那么分組的標題就為 2013-1-25。如果今天是2013-1-25,直接

顯示2013-1-25是不是覺得體驗不好?“今天”反而覺得一目了然,呵呵。

於是我寫了一個函數計算某個時間和當前時間的天數差.

代碼如下:

+ (NSInteger)numberOfDaysFromTodayByTime:(NSString *)time timeStringFormat:(NSString *)format
{
    // format可以形如: @"yyyy-MM-dd"
    
    NSDate *today = [NSDate date];
    
    NSTimeZone *localTimeZone = [NSTimeZone systemTimeZone];
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    [formatter setTimeZone:localTimeZone];
    [formatter setDateFormat:NSLocalizedString(format,nil)];
    
    // 時分秒轉為00:00:00
    NSDate *today2 = [formatter dateFromString:[formatter stringFromDate:today]];
    
    NSDate *newDate = [formatter dateFromString:time];
    // 時分秒轉為00:00:00
    NSDate *newDate2 = [formatter dateFromString:[formatter stringFromDate:newDate]];
    
    double dToday = [G2XToolkits numberOfSecondsFrom1970:today2];
    double dNewDate = [G2XToolkits numberOfSecondsFrom1970:newDate2];
    
    NSInteger nSecs = (NSInteger)(dNewDate - dToday);
    NSInteger oneDaySecs = 24*3600;
    return nSecs / oneDaySecs;
}

我把這個函數收入在一個工具類中,便於以后直接使用。如果你用的着,你也可以放到項目中使用。

我調用這個函數,判斷返回值:

如果 result=0, 表示今天

如果 result=-1, 表示昨天

如果   result<-1      標示昨天以前

如果 result>0        標示將來的某一天。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM