Time Ago功能与月和年Android

时间:2017-06-02 14:30:48

标签: java android time duration period

我在我的一个Android应用程序中使用TimeUnit的时间。但是我成功了几天......我想要它直到一个月和一年。我的功能如下所示......任何人都可以建议我如何才能增加到年份?

private String displayQuoteTime(long seconds) {

    int day = (int) TimeUnit.SECONDS.toDays(seconds);
    long hours = TimeUnit.SECONDS.toHours(seconds)

            - TimeUnit.DAYS.toHours(day);
    long minute = TimeUnit.SECONDS.toMinutes(seconds)
            - TimeUnit.DAYS.toMinutes(day)
            - TimeUnit.HOURS.toMinutes(hours);
    long second = TimeUnit.SECONDS.toSeconds(seconds)
            - TimeUnit.DAYS.toSeconds(day)
            - TimeUnit.HOURS.toSeconds(hours)
            - TimeUnit.MINUTES.toSeconds(minute);
    String postTime = "";
    if (day > 0) {
        if (day == 1) {
            postTime = day + " day";
        } else {
            postTime = day + " days";
        }
    } else if (hours > 0) {
        if (TextUtils.isEmpty(postTime)) {
            if (hours == 1) {
                postTime = hours + " hour";
            } else {
                postTime = hours + " hours";
            }

        } else {
            postTime = postTime + " " + hours + " hours";
        }

    } else if (minute > 0) {
        if (TextUtils.isEmpty(postTime)) {
            if (minute == 1) {
                postTime = minute + " min";
            } else {
                postTime = minute + " mins";
            }
        } else
            postTime = postTime + " " + minute + " mins";
    } else {
        if (TextUtils.isEmpty(postTime))
            postTime = "second";
    }
    postTime = postTime + " ago";

    System.out.println("Day " + day + " Hour " + hours + " Minute "
            + minute + " Seconds " + second);
    return postTime;
}

我正在学习....所以如果有人能解决我的问题,请告诉我。感谢

1 个答案:

答案 0 :(得分:0)

private static String displayQuoteTime(long seconds) {

    int day = (int) TimeUnit.SECONDS.toDays(seconds);
    long hours = TimeUnit.SECONDS.toHours(seconds)

            - TimeUnit.DAYS.toHours(day);
    int months = day / 30;
    int years = months / 12;
    long minute = TimeUnit.SECONDS.toMinutes(seconds)
            - TimeUnit.DAYS.toMinutes(day)
            - TimeUnit.HOURS.toMinutes(hours);
    long second = TimeUnit.SECONDS.toSeconds(seconds)
            - TimeUnit.DAYS.toSeconds(day)
            - TimeUnit.HOURS.toSeconds(hours)
            - TimeUnit.MINUTES.toSeconds(minute);
    String postTime = "";
    if (years > 0) {
        if (TextUtils.isEmpty(postTime)) {
            if (years == 1) {
                postTime = years + " year";
            } else {
                postTime = years + " years";
            }

        } else {
            postTime = postTime + " " + years + " years";
        }
    }
        else if (months > 0) {
        if (TextUtils.isEmpty(postTime)) {
            if (months == 1) {
                postTime = months + " month";
            } else {
                postTime = months + " months";
            }
        } else
            postTime = postTime + " " + months + " months";
    } else if (day > 0) {
        if (day == 1) {
            postTime = day + " day";
        } else {
            postTime = day + " days";
        }
    } else if (hours > 0) {
        if (TextUtils.isEmpty(postTime)) {
            if (hours == 1) {
                postTime = hours + " hour";
            } else {
                postTime = hours + " hours";
            }

        } else {
            postTime = postTime + " " + hours + " hours";
        }

    } else if (minute > 0) {
        if (TextUtils.isEmpty(postTime)) {
            if (minute == 1) {
                postTime = minute + " min";
            } else {
                postTime = minute + " mins";
            }
        } else
            postTime = postTime + " " + minute + " mins";
    }else {
        if (TextUtils.isEmpty(postTime))
            postTime = "second";
    }
    postTime = postTime + " ago";

    System.out.println(" years " + years + " months " + months + " Day " + day + " Hour " + hours + " Minute "
            + minute + " Seconds " + second);
    return postTime;
}