From 17c417dad5c7be28df4b6e1fd25ec56b484faaff Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Thu, 26 May 2011 17:22:03 -0400 Subject: [PATCH] Changed git.otherUrls to web.otherUrls. --- src/com/gitblit/utils/TimeUtils.java | 92 ++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 76 insertions(+), 16 deletions(-) diff --git a/src/com/gitblit/utils/TimeUtils.java b/src/com/gitblit/utils/TimeUtils.java index 60b525b..16aea77 100644 --- a/src/com/gitblit/utils/TimeUtils.java +++ b/src/com/gitblit/utils/TimeUtils.java @@ -1,33 +1,88 @@ +/* + * Copyright 2011 gitblit.com. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package com.gitblit.utils; import java.util.Date; public class TimeUtils { - private final static long min = 1000 * 60l; + public static final long MIN = 1000 * 60L; - private final static long halfhour = min * 30l; + public static final long HALFHOUR = MIN * 30L; - private final static long onehour = halfhour * 2; + public static final long ONEHOUR = HALFHOUR * 2; - private final static long oneday = onehour * 24l; + public static final long ONEDAY = ONEHOUR * 24L; + + public static final long ONEYEAR = ONEDAY * 365L; @SuppressWarnings("deprecation") public static boolean isToday(Date date) { Date now = new Date(); - return now.getDate() == date.getDate() && now.getMonth() == date.getMonth() && now.getYear() == date.getYear(); + return now.getDate() == date.getDate() && now.getMonth() == date.getMonth() + && now.getYear() == date.getYear(); } @SuppressWarnings("deprecation") public static boolean isYesterday(Date date) { Date now = new Date(); - return now.getDate() == (date.getDate() + 1) && now.getMonth() == date.getMonth() && now.getYear() == date.getYear(); + return now.getDate() == (date.getDate() + 1) && now.getMonth() == date.getMonth() + && now.getYear() == date.getYear(); + } + + public static String duration(int days) { + if (days <= 60) { + return days + (days > 1 ? " days" : " day"); + } else if (days <= 365) { + int rem = days % 30; + return (days / 30) + " months, " + rem + (rem > 1 ? " days" : " day"); + } else { + int years = days / 365; + int rem = days % 365; + String yearsString = years + (years > 1 ? " years" : " year"); + if (rem < 30) { + if (rem == 0) { + return yearsString; + } else { + return yearsString + ", " + rem + (rem > 1 ? " days" : " day"); + } + } else { + int months = rem / 30; + int remDays = rem % 30; + String monthsString; + if (months == 0) { + monthsString = yearsString; + } else { + monthsString = yearsString + ", " + months + + (months > 1 ? " months" : " month"); + } + if (remDays == 0) { + return monthsString; + } else { + return monthsString + ", " + remDays + (remDays > 1 ? " days" : " day"); + } + } + } } public static int minutesAgo(Date date, long endTime, boolean roundup) { long diff = endTime - date.getTime(); - int mins = (int) (diff / min); - if (roundup && (diff % min) >= 30) + int mins = (int) (diff / MIN); + if (roundup && (diff % MIN) >= 30) { mins++; + } return mins; } @@ -37,17 +92,19 @@ public static int hoursAgo(Date date, boolean roundup) { long diff = System.currentTimeMillis() - date.getTime(); - int hours = (int) (diff / onehour); - if (roundup && (diff % onehour) >= halfhour) + int hours = (int) (diff / ONEHOUR); + if (roundup && (diff % ONEHOUR) >= HALFHOUR) { hours++; + } return hours; } public static int daysAgo(Date date, boolean roundup) { long diff = System.currentTimeMillis() - date.getTime(); - int days = (int) (diff / oneday); - if (roundup && (diff % oneday) > 0) + int days = (int) (diff / ONEDAY); + if (roundup && (diff % ONEDAY) > 0) { days++; + } return days; } @@ -89,18 +146,21 @@ ago = days + " day" + (days > 1 ? "s" : "") + " ago"; } else if (days <= 90) { int weeks = days / 7; - if (weeks == 12) + if (weeks == 12) { ago = "3 months ago"; - else + } else { ago = weeks + " weeks ago"; + } } else if (days > 90) { int months = days / 30; int weeks = (days % 30) / 7; - if (weeks >= 2) + if (weeks >= 2) { months++; + } ago = months + " month" + (months > 1 ? "s" : "") + " ago"; - } else + } else { ago = days + " day" + (days > 1 ? "s" : "") + " ago"; + } } else if (days == 365) { ago = "1 year ago"; } else { -- Gitblit v1.9.1