package de.danoeh.antennapod.utils; import android.content.Context; import java.util.Date; import de.danoeh.antennapod.R; /* * Copyright 2012 Google Inc. * * 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. */ //http://stackoverflow.com/questions/13018550/time-since-ago-library-for-android-java public class TimeUtils { private static final int SECOND_MILLIS = 1000; private static final int MINUTE_MILLIS = 60 * SECOND_MILLIS; private static final int HOUR_MILLIS = 60 * MINUTE_MILLIS; private static final int DAY_MILLIS = 24 * HOUR_MILLIS; public static String getTimeAgo(long time, Context ctx) { if (time < 1000000000000L) { // if timestamp given in seconds, convert to millis time *= 1000; } long now = new Date().getTime(); if (time > now || time <= 0) { return null; } final long diff = now - time; if (diff < MINUTE_MILLIS) { return ctx.getString(R.string.time_just_now); } else if (diff < 2 * MINUTE_MILLIS) { return ctx.getString(R.string.time_a_min_ago); } else if (diff < 50 * MINUTE_MILLIS) { return diff / MINUTE_MILLIS + ctx.getString(R.string.time_min_ago); } else if (diff < 90 * MINUTE_MILLIS) { return ctx.getString(R.string.time_an_hour_ago); } else if (diff < 24 * HOUR_MILLIS) { return diff / HOUR_MILLIS + ctx.getString(R.string.time_hours_ago); } else if (diff < 48 * HOUR_MILLIS) { return ctx.getString(R.string.time_yesterday); } else { return diff / DAY_MILLIS + ctx.getString(R.string.time_days_ago); } } }