com.none.tom.simplerssreader.utils.DateUtils.java Source code

Java tutorial

Introduction

Here is the source code for com.none.tom.simplerssreader.utils.DateUtils.java

Source

// Copyright (c) 2017-2018, Tom Geiselmann
//
// Permission is hereby granted, free of charge, to any person obtaining a copy of this software
// and associated documentation files (the "Software"), to deal in the Software without restriction,
// including without limitation the rights to use, copy, modify, merge, publish, distribute,
// sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in all copies or
// substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY,WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

package com.none.tom.simplerssreader.utils;

import android.content.Context;
import android.content.res.Resources;

import com.none.tom.simplerssreader.R;

import org.joda.time.DateTime;
import org.joda.time.DurationFieldType;
import org.joda.time.Period;

import java.util.Date;

public class DateUtils {
    public static String parseDate(final Context context, final Date date) {
        final Period period = new Period(new DateTime(date).getMillis(), System.currentTimeMillis());

        final int[] plurals = { R.plurals.years, R.plurals.months, R.plurals.weeks, R.plurals.days, R.plurals.hours,
                R.plurals.minutes, R.plurals.less_than_minutes };

        final DurationFieldType[] durationTypes = { DurationFieldType.years(), DurationFieldType.months(),
                DurationFieldType.weeks(), DurationFieldType.days(), DurationFieldType.hours(),
                DurationFieldType.minutes() };

        final Resources res = context.getResources();

        for (int i = 0; i < durationTypes.length; i++) {
            final int value = period.get(durationTypes[i]);

            if (value > 0) {
                return value + res.getQuantityString(plurals[i], value);
            }
        }

        return res.getQuantityString(plurals[plurals.length - 1], 1);
    }
}