summaryrefslogtreecommitdiff
path: root/Juick/Helpers/NSDate+TimeAgo.m
diff options
context:
space:
mode:
Diffstat (limited to 'Juick/Helpers/NSDate+TimeAgo.m')
-rw-r--r--Juick/Helpers/NSDate+TimeAgo.m46
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