1. 程式人生 > >計算指定時間與當前的時間差 比如,3天前、10分鐘前

計算指定時間與當前的時間差 比如,3天前、10分鐘前

計算指定時間與當前的時間差  比如,3天前、10分鐘前(這個在專案中經常遇到,所以記錄了下來)

以下是實現方法:

/**

 * 計算指定時間與當前的時間差

 * @param compareDate   某一指定時間 

 * @return 多少(orororor)+ (比如,3天前、10分鐘前

 */

+(NSString *) compareCurrentTime:(NSDate*) compareDate

//                         

{

    NSTimeInterval  timeInterval = [compareDate timeIntervalSinceNow

];

    timeInterval = -timeInterval;

    long temp = 0;

    NSString *result;

    if (timeInterval < 60) {

        result = [NSStringstringWithFormat:@"剛剛"];

    }

    else if((temp = timeInterval/60) <60){

       result = [NSStringstringWithFormat:@"%d分前",temp];

    }

    else if((temp = temp/60

) <24){

        result = [NSStringstringWithFormat:@"%d小前",temp];

    }

    else if((temp = temp/24) <30){

        result = [NSStringstringWithFormat:@"%d天前",temp];

    }

    else if((temp = temp/30) <12){

        result = [NSStringstringWithFormat:@"%d月前",temp];

    }

    else{

        temp = temp/12

;

        result = [NSStringstringWithFormat:@"%d年前",temp];

    }

    return  result;

}

以下是NSDate中的常用方法:

/**

     - (id)initWithTimeInterval:(NSTimeInterval)secs sinceDate:(NSDate *)refDate;

初始化為以refDate為基準,然後過了secs秒的時間

     - (id)initWithTimeIntervalSinceNow:(NSTimeInterval)secs;

初始化為以當前時間為基準,然後過了secs秒的時間

     - (NSTimeInterval)timeIntervalSinceDate:(NSDate *)refDate;

refDate為基準時間,返回例項儲存的時間與refDate的時間間隔

     - (NSTimeInterval)timeIntervalSinceNow;

以當前時間(Now)為基準時間,返回例項儲存的時間與當前時間(Now)的時間間隔

     - (NSTimeInterval)timeIntervalSince1970;

     1970/01/01 GMT為基準時間,返回例項儲存的時間與1970/01/01 GMT的時間間隔

     - (NSTimeInterval)timeIntervalSinceReferenceDate;

     2001/01/01 GMT為基準時間,返回例項儲存的時間與2001/01/01 GMT的時間間隔

     + (NSTimeInterval)timeIntervalSinceReferenceDate;

       */

    //

// - (NSTimeInterval)timeIntervalSinceNow;

//    以當前時間(Now)為基準時間,返回例項儲存的時間與當前時間(Now)的時間間隔