Skip to content

Commit 8bf9853

Browse files
authored
Merge pull request #1 from playmoweb/date-utils
Add DateUtils class with diff and date string display
2 parents 78ba21e + 04f70a7 commit 8bf9853

File tree

2 files changed

+69
-0
lines changed

2 files changed

+69
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
package com.playmoweb.android.utils;
2+
3+
import android.content.Context;
4+
5+
/**
6+
* @author Thibaud Giovannetti
7+
* @date 20/04/2018
8+
*/
9+
public class DateUtils {
10+
private static final int SECOND_MILLIS = 1000;
11+
private static final int MINUTE_MILLIS = 60 * DateUtils.SECOND_MILLIS;
12+
private static final int HOUR_MILLIS = 60 * DateUtils.MINUTE_MILLIS;
13+
private static final int DAY_MILLIS = 24 * DateUtils.HOUR_MILLIS;
14+
15+
public static class TimeDiff {
16+
public final long diffMillis;
17+
public final int minutes;
18+
public final int hours;
19+
public final int days;
20+
21+
public TimeDiff(final long timeMillis, final int minutes, final int hours, final int days) {
22+
diffMillis = timeMillis;
23+
this.minutes = minutes;
24+
this.hours = hours;
25+
this.days = days;
26+
}
27+
}
28+
29+
public static String getTimeAgo(final Context context, final long from, final long toTime) {
30+
final TimeDiff timeDiff = DateUtils.getTimeDiff(from, toTime);
31+
if (timeDiff.minutes == 0) {
32+
return context.getString(R.string.library_android_utils_date_utils_just_now);
33+
} else if (timeDiff.minutes < 2) {
34+
return context.getString(R.string.library_android_utils_date_utils_a_minute_ago);
35+
} else if (timeDiff.minutes < 50) {
36+
return context.getString(R.string.library_android_utils_date_utils_n_minutes_ago, timeDiff.minutes);
37+
} else if (timeDiff.minutes < 90) {
38+
return context.getString(R.string.library_android_utils_date_utils_an_hour_ago);
39+
} else if (timeDiff.hours < 24) {
40+
return context.getString(R.string.library_android_utils_date_utils_n_hours_ago, timeDiff.hours);
41+
} else if (timeDiff.hours < 48) {
42+
return context.getString(R.string.library_android_utils_date_utils_yesterday);
43+
} else {
44+
return context.getString(R.string.library_android_utils_date_utils_n_days_ago, timeDiff.days);
45+
}
46+
}
47+
48+
public static TimeDiff getTimeDiff(final long from, final long toTime) {
49+
final long to = toTime < 1000000000000L ? toTime * 1000 : toTime;
50+
final long diff = from - to;
51+
52+
return new TimeDiff(
53+
diff,
54+
(int) (diff / DateUtils.MINUTE_MILLIS),
55+
(int) (diff / DateUtils.HOUR_MILLIS),
56+
(int) (diff / DateUtils.DAY_MILLIS)
57+
);
58+
}
59+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<resources>
3+
<string name="library_android_utils_date_utils_just_now">À l\'instant</string>
4+
<string name="library_android_utils_date_utils_a_minute_ago">~1 minute</string>
5+
<string name="library_android_utils_date_utils_n_minutes_ago">Il y a %1$d minutes</string>
6+
<string name="library_android_utils_date_utils_an_hour_ago">Il y a 1 heure</string>
7+
<string name="library_android_utils_date_utils_n_hours_ago">Il y a %1$d heures</string>
8+
<string name="library_android_utils_date_utils_yesterday">Hier</string>
9+
<string name="library_android_utils_date_utils_n_days_ago">Il y a %1$d jours</string>
10+
</resources>

0 commit comments

Comments
 (0)