diff options
Diffstat (limited to 'Juick/Helpers/NSDate+TimeAgo.m')
-rw-r--r-- | Juick/Helpers/NSDate+TimeAgo.m | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/Juick/Helpers/NSDate+TimeAgo.m b/Juick/Helpers/NSDate+TimeAgo.m new file mode 100644 index 0000000..860e1bc --- /dev/null +++ b/Juick/Helpers/NSDate+TimeAgo.m @@ -0,0 +1,46 @@ +// +// TimeAgo.m +// Juick +// +// Created by Vitaly Takmazov on 10.12.2019. +// Copyright © 2019 com.juick. All rights reserved. +// + +#import "NSDate+TimeAgo.h" + +@implementation NSDate(TimeAgo) + +- (NSString *)timeAgo { + NSDateComponentsFormatter *formatter = [[NSDateComponentsFormatter alloc] init]; + formatter.unitsStyle = NSDateComponentsFormatterUnitsStyleFull; + + NSDate *now = [NSDate date]; + + NSCalendar *calendar = [NSCalendar currentCalendar]; + NSDateComponents *components = [calendar components:(NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitWeekOfMonth|NSCalendarUnitDay|NSCalendarUnitHour|NSCalendarUnitMinute|NSCalendarUnitSecond) + fromDate:self + toDate:now + options:0]; + + if (components.year > 0) { + formatter.allowedUnits = NSCalendarUnitYear; + } else if (components.month > 0) { + formatter.allowedUnits = NSCalendarUnitMonth; + } else if (components.weekOfMonth > 0) { + formatter.allowedUnits = NSCalendarUnitWeekOfMonth; + } else if (components.day > 0) { + formatter.allowedUnits = NSCalendarUnitDay; + } else if (components.hour > 0) { + formatter.allowedUnits = NSCalendarUnitHour; + } else if (components.minute > 0) { + formatter.allowedUnits = NSCalendarUnitMinute; + } else { + formatter.allowedUnits = NSCalendarUnitSecond; + } + + NSString *formatString = NSLocalizedString(@"%@ ago", @"Used to say how much time has passed. e.g. '2 hours ago'"); + + return [NSString stringWithFormat:formatString, [formatter stringFromDateComponents:components]]; +} + +@end |