小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

iOS根據日期判斷是剛剛、幾分鐘前、幾小時前等的代碼片段

 嘆落花 2015-04-01

參考github源碼中的一個格式化字符串的源碼,

是NSDate的一個擴展方法:

  1. /** 
  2.  * Given the reference date and return a pretty date string to show 
  3.  * 
  4.  * @param refrence the date to refrence 
  5.  * 
  6.  * @return a pretty date string, like "just now", "1 minute ago", "2 weeks ago", etc 
  7.  */  
  8. - (NSString *)prettyDateWithReference:(NSDate *)reference {  
  9.   NSString *suffix = @"ago";  
  10.     
  11.   float different = [reference timeIntervalSinceDate:self];  
  12.   if (different < 0) {  
  13.     different = -different;  
  14.     suffix = @"from now";  
  15.   }  
  16.     
  17.   // days = different / (24 * 60 * 60), take the floor value  
  18.   float dayDifferent = floor(different / 86400);  
  19.     
  20.   int days   = (int)dayDifferent;  
  21.   int weeks  = (int)ceil(dayDifferent / 7);  
  22.   int months = (int)ceil(dayDifferent / 30);  
  23.   int years  = (int)ceil(dayDifferent / 365);  
  24.     
  25.   // It belongs to today  
  26.   if (dayDifferent <= 0) {  
  27.     // lower than 60 seconds  
  28.     if (different < 60) {  
  29.       return @"just now";  
  30.     }  
  31.       
  32.     // lower than 120 seconds => one minute and lower than 60 seconds  
  33.     if (different < 120) {  
  34.       return [NSString stringWithFormat:@"1 minute %@", suffix];  
  35.     }  
  36.       
  37.     // lower than 60 minutes  
  38.     if (different < 660 * 60) {  
  39.       return [NSString stringWithFormat:@"%d minutes %@", (int)floor(different / 60), suffix];  
  40.     }  
  41.       
  42.     // lower than 60 * 2 minutes => one hour and lower than 60 minutes  
  43.     if (different < 7200) {  
  44.       return [NSString stringWithFormat:@"1 hour %@", suffix];  
  45.     }  
  46.       
  47.     // lower than one day  
  48.     if (different < 86400) {  
  49.       return [NSString stringWithFormat:@"%d hours %@", (int)floor(different / 3600), suffix];  
  50.     }  
  51.   }  
  52.   // lower than one week  
  53.   else if (days < 7) {  
  54.     return [NSString stringWithFormat:@"%d day%@ %@", days, days == 1 ? @"" : @"s", suffix];  
  55.   }  
  56.   // lager than one week but lower than a month  
  57.   else if (weeks < 4) {  
  58.     return [NSString stringWithFormat:@"%d week%@ %@", weeks, weeks == 1 ? @"" : @"s", suffix];  
  59.   }  
  60.   // lager than a month and lower than a year  
  61.   else if (months < 12) {  
  62.     return [NSString stringWithFormat:@"%d month%@ %@", months, months == 1 ? @"" : @"s", suffix];  
  63.   }  
  64.   // lager than a year  
  65.   else {  
  66.     return [NSString stringWithFormat:@"%d year%@ %@", years, years == 1 ? @"" : @"s", suffix];  
  67.   }  
  68.     
  69.   return self.description;  
  70. }  


    本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發(fā)現有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多