From a75a1819f4c7fa5080ddb47545fe9012a842e5b3 Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Wed, 20 Jul 2011 21:08:57 -0400 Subject: [PATCH] Misc fixes. --- src/com/gitblit/utils/TimeUtils.java | 90 +++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 82 insertions(+), 8 deletions(-) diff --git a/src/com/gitblit/utils/TimeUtils.java b/src/com/gitblit/utils/TimeUtils.java index ece87dd..ad81463 100644 --- a/src/com/gitblit/utils/TimeUtils.java +++ b/src/com/gitblit/utils/TimeUtils.java @@ -15,8 +15,15 @@ */ package com.gitblit.utils; +import java.util.Calendar; import java.util.Date; +/** + * Utility class of time functions. + * + * @author James Moger + * + */ public class TimeUtils { public static final long MIN = 1000 * 60L; @@ -28,20 +35,36 @@ public static final long ONEYEAR = ONEDAY * 365L; - @SuppressWarnings("deprecation") + /** + * Returns true if date is today. + * + * @param date + * @return true if date is today + */ public static boolean isToday(Date date) { - Date now = new Date(); - return now.getDate() == date.getDate() && now.getMonth() == date.getMonth() - && now.getYear() == date.getYear(); + return (System.currentTimeMillis() - date.getTime()) < ONEDAY; } - @SuppressWarnings("deprecation") + /** + * Returns true if date is yesterday. + * + * @param date + * @return true if date is yesterday + */ public static boolean isYesterday(Date date) { - Date now = new Date(); - return now.getDate() == (date.getDate() + 1) && now.getMonth() == date.getMonth() - && now.getYear() == date.getYear(); + Calendar cal = Calendar.getInstance(); + cal.setTime(date); + cal.add(Calendar.DATE, 1); + return (System.currentTimeMillis() - cal.getTimeInMillis()) < ONEDAY; } + /** + * Returns the string representation of the duration as days, months and/or + * years. + * + * @param days + * @return duration as string in days, months, and/or years + */ public static String duration(int days) { if (days <= 60) { return days + (days > 1 ? " days" : " day"); @@ -71,6 +94,15 @@ } } + /** + * Returns the number of minutes ago between the start time and the end + * time. + * + * @param date + * @param endTime + * @param roundup + * @return difference in minutes + */ public static int minutesAgo(Date date, long endTime, boolean roundup) { long diff = endTime - date.getTime(); int mins = (int) (diff / MIN); @@ -80,10 +112,24 @@ return mins; } + /** + * Return the difference in minutes between now and the date. + * + * @param date + * @param roundup + * @return minutes ago + */ public static int minutesAgo(Date date, boolean roundup) { return minutesAgo(date, System.currentTimeMillis(), roundup); } + /** + * Return the difference in hours between now and the date. + * + * @param date + * @param roundup + * @return hours ago + */ public static int hoursAgo(Date date, boolean roundup) { long diff = System.currentTimeMillis() - date.getTime(); int hours = (int) (diff / ONEHOUR); @@ -93,6 +139,13 @@ return hours; } + /** + * Return the difference in days between now and the date. + * + * @param date + * @param roundup + * @return days ago + */ public static int daysAgo(Date date, boolean roundup) { long diff = System.currentTimeMillis() - date.getTime(); int days = (int) (diff / ONEDAY); @@ -102,14 +155,35 @@ return days; } + /** + * Returns the string representation of the duration between now and the + * date. + * + * @param date + * @return duration as a string + */ public static String timeAgo(Date date) { return timeAgo(date, false); } + /** + * Returns the CSS class for the date based on its age from Now. + * + * @param date + * @return the css class + */ public static String timeAgoCss(Date date) { return timeAgo(date, true); } + /** + * Returns the string representation of the duration OR the css class for + * the duration. + * + * @param date + * @param css + * @return the string representation of the duration OR the css class + */ private static String timeAgo(Date date, boolean css) { String ago = null; if (isToday(date) || isYesterday(date)) { -- Gitblit v1.9.1