From 62591b81f763fbefc413f8e329417c6836f48650 Mon Sep 17 00:00:00 2001 From: Pikdays Date: Fri, 18 Dec 2015 14:43:34 +0800 Subject: [PATCH] Chinese , week Mon, Tue, Wed, Thu, Fri, Sat, Sun --- .../en.lproj/DateTools.strings | 17 ++++++++++++ .../zh-Hans.lproj/DateTools.strings | 17 ++++++++++++ .../zh-Hant.lproj/DateTools.strings | 17 ++++++++++++ DateTools/NSDate+DateTools.h | 7 +++++ DateTools/NSDate+DateTools.m | 26 +++++++++++++++++-- .../DateToolsViewController.m | 9 +++++++ 6 files changed, 91 insertions(+), 2 deletions(-) diff --git a/DateTools/DateTools.bundle/en.lproj/DateTools.strings b/DateTools/DateTools.bundle/en.lproj/DateTools.strings index d8afe823..dc4cfa90 100644 --- a/DateTools/DateTools.bundle/en.lproj/DateTools.strings +++ b/DateTools/DateTools.bundle/en.lproj/DateTools.strings @@ -87,3 +87,20 @@ "%dh" = "%dh"; // hour "%dm" = "%dm"; // minute "%ds" = "%ds"; // second + +/* Week format for */ +"Mon" = "Mon"; +"Tue" = "Tue"; +"Wed" = "Wed"; +"Thu" = "Thu"; +"Fri" = "Fri"; +"Sat" = "Sat"; +"Sun" = "Sun"; + +"周一" = "星期一"; +"周二" = "星期二"; +"周三" = "星期三"; +"周四" = "星期四"; +"周五" = "星期五"; +"周六" = "星期六"; +"周日" = "星期日"; \ No newline at end of file diff --git a/DateTools/DateTools.bundle/zh-Hans.lproj/DateTools.strings b/DateTools/DateTools.bundle/zh-Hans.lproj/DateTools.strings index 42144326..8004dab6 100644 --- a/DateTools/DateTools.bundle/zh-Hans.lproj/DateTools.strings +++ b/DateTools/DateTools.bundle/zh-Hans.lproj/DateTools.strings @@ -78,3 +78,20 @@ "%dh" = "%d小时"; // hour "%dm" = "%d分"; // minute "%ds" = "%d秒"; // second + +/* Week format for */ +"Mon" = "星期一"; +"Tue" = "星期二"; +"Wed" = "星期三"; +"Thu" = "星期四"; +"Fri" = "星期五"; +"Sat" = "星期六"; +"Sun" = "星期日"; + +"周一" = "星期一"; +"周二" = "星期二"; +"周三" = "星期三"; +"周四" = "星期四"; +"周五" = "星期五"; +"周六" = "星期六"; +"周日" = "星期日"; \ No newline at end of file diff --git a/DateTools/DateTools.bundle/zh-Hant.lproj/DateTools.strings b/DateTools/DateTools.bundle/zh-Hant.lproj/DateTools.strings index 33d0c71c..32902d93 100644 --- a/DateTools/DateTools.bundle/zh-Hant.lproj/DateTools.strings +++ b/DateTools/DateTools.bundle/zh-Hant.lproj/DateTools.strings @@ -78,3 +78,20 @@ "%dh" = "%d小時"; // hour "%dm" = "%d分"; // minute "%ds" = "%d秒"; // second + +/* Week format for */ +"Mon" = "星期壹"; +"Tue" = "星期二"; +"Wed" = "星期三"; +"Thu" = "星期四"; +"Fri" = "星期五"; +"Sat" = "星期六"; +"Sun" = "星期日"; + +"周壹" = "星期壹"; +"周二" = "星期二"; +"周三" = "星期三"; +"周四" = "星期四"; +"周五" = "星期五"; +"周六" = "星期六"; +"周日" = "星期日"; \ No newline at end of file diff --git a/DateTools/NSDate+DateTools.h b/DateTools/NSDate+DateTools.h index 138afef2..94231a75 100644 --- a/DateTools/NSDate+DateTools.h +++ b/DateTools/NSDate+DateTools.h @@ -33,12 +33,19 @@ NSLocalizedStringFromTableInBundle(key, @"DateTools", [NSBundle bundleWithPath:[ #pragma mark - Time Ago + (NSString*)timeAgoSinceDate:(NSDate*)date; + (NSString*)shortTimeAgoSinceDate:(NSDate*)date; ++ (NSString *)weekTimeAgoSinceDate:(NSDate *)date; + - (NSString*)timeAgoSinceNow; - (NSString *)shortTimeAgoSinceNow; +- (NSString *)weekTimeAgoSinceNow; + - (NSString *)timeAgoSinceDate:(NSDate *)date; - (NSString *)timeAgoSinceDate:(NSDate *)date numericDates:(BOOL)useNumericDates; - (NSString *)timeAgoSinceDate:(NSDate *)date numericDates:(BOOL)useNumericDates numericTimes:(BOOL)useNumericTimes; + + - (NSString *)shortTimeAgoSinceDate:(NSDate *)date; +- (NSString *)weekTimeAgoSinceDate:(NSDate *)date; #pragma mark - Date Components Without Calendar diff --git a/DateTools/NSDate+DateTools.m b/DateTools/NSDate+DateTools.m index 4fd48069..51885803 100644 --- a/DateTools/NSDate+DateTools.m +++ b/DateTools/NSDate+DateTools.m @@ -44,7 +44,8 @@ typedef NS_ENUM(NSUInteger, DateAgoFormat){ DateAgoLongUsingNumericDatesAndTimes, DateAgoLongUsingNumericDates, DateAgoLongUsingNumericTimes, - DateAgoShort + DateAgoShort, + DateAgoWeek, }; typedef NS_ENUM(NSUInteger, DateAgoValues){ @@ -95,6 +96,10 @@ + (NSString*)shortTimeAgoSinceDate:(NSDate*)date{ return [date shortTimeAgoSinceDate:[NSDate date]]; } ++ (NSString*)weekTimeAgoSinceDate:(NSDate*)date{ + return [date weekTimeAgoSinceDate:[NSDate date]]; +} + /** * Returns a string with the most convenient unit of time representing * how far in the past that date is from now. @@ -115,6 +120,10 @@ - (NSString *)shortTimeAgoSinceNow{ return [self shortTimeAgoSinceDate:[NSDate date]]; } +- (NSString *)weekTimeAgoSinceNow{ + return [self weekTimeAgoSinceDate:[NSDate date]]; +} + - (NSString *)timeAgoSinceDate:(NSDate *)date{ return [self timeAgoSinceDate:date numericDates:NO]; } @@ -139,6 +148,10 @@ - (NSString *)shortTimeAgoSinceDate:(NSDate *)date{ return [self timeAgoSinceDate:date format:DateAgoShort]; } +- (NSString *)weekTimeAgoSinceDate:(NSDate *)date{ + return [self timeAgoSinceDate:date format:DateAgoWeek]; +} + - (NSString *)timeAgoSinceDate:(NSDate *)date format:(DateAgoFormat)format { NSCalendar *calendar = [NSCalendar currentCalendar]; @@ -185,7 +198,8 @@ - (NSString *)localizedStringFor:(DateAgoFormat)format valueType:(DateAgoValues) BOOL isShort = format == DateAgoShort; BOOL isNumericDate = format == DateAgoLongUsingNumericDates || format == DateAgoLongUsingNumericDatesAndTimes; BOOL isNumericTime = format == DateAgoLongUsingNumericTimes || format == DateAgoLongUsingNumericDatesAndTimes; - + BOOL isWeek = format == DateAgoWeek; + switch (valueType) { case YearsAgo: if (isShort) { @@ -221,6 +235,14 @@ - (NSString *)localizedStringFor:(DateAgoFormat)format valueType:(DateAgoValues) if (isShort) { return [self logicLocalizedStringFromFormat:@"%%d%@d" withValue:value]; } else if (value >= 2) { + if (isWeek && value <= 7) { + NSDateFormatter *dayDateFormatter = [[NSDateFormatter alloc]init]; + dayDateFormatter.dateFormat = @"EEE"; + NSString *eee = [dayDateFormatter stringFromDate:self]; + + return DateToolsLocalizedStrings(eee); + } + return [self logicLocalizedStringFromFormat:@"%%d %@days ago" withValue:value]; } else if (isNumericDate) { return DateToolsLocalizedStrings(@"1 day ago"); diff --git a/Examples/DateToolsExample/DateToolsExample/DateToolsViewController.m b/Examples/DateToolsExample/DateToolsExample/DateToolsViewController.m index 7d4f63f2..9751534b 100644 --- a/Examples/DateToolsExample/DateToolsExample/DateToolsViewController.m +++ b/Examples/DateToolsExample/DateToolsExample/DateToolsViewController.m @@ -52,6 +52,15 @@ - (void)viewDidLoad //Setup date formatter self.formatter = [[NSDateFormatter alloc] init]; [self.formatter setDateFormat:@"HHmm MMMM d yyyy"]; + + + + // <<<<<<<<<<<<<<<<<<<<<<< + self.selectedDate = [NSDate dateWithTimeIntervalSinceNow:-24*60*60*6+100]; + NSString *week = [NSDate weekTimeAgoSinceDate:self.selectedDate]; + NSLog(@"Week:%@", week); + // >>>>>>>>>>>>>>>>>>>>>>> + //Set initial date self.selectedDate = [self.formatter dateFromString:@"0000 November 5 1605"];