JAVA(工具方法),查某个时间在几分钟前、几小时前、几天前、几月前、超一年

    private static final long ONE_MILLISECOND = 1000L;
    private static final long ONE_MINUTE = 60000L;
    private static final long ONE_HOUR = 3600000L;
    private static final long ONE_DAY = 86400000L;

    private static final String ONE_SECOND_AGO = "秒前";
    private static final String ONE_MINUTE_AGO = "分钟前";
    private static final String ONE_HOUR_AGO = "小时前";
    private static final String ONE_DAY_AGO = "天前";
    private static final String ONE_MONTH_AGO = "1个月前";
    private static final String TWO_MONTH_AGO = "2个月前";
    private static final String THREE_MONTH_AGO = "3个月前";
    private static final String FOUR_MONTH_AGO = "4个月前";
    private static final String FIVE_MONTH_AGO = "5个月前";
    private static final String SIX_MONTH_AGO = "6个月前";
    private static final String SEVEN_MONTH_AGO = "7个月前";
    private static final String EIGHT_MONTH_AGO = "8个月前";
    private static final String NINE_MONTH_AGO = "9个月前";
    private static final String TEN_MONTH_AGO = "10个月前";
    private static final String ELEVEN_MONTH_AGO = "11个月前";
    private static final String ONE_YEAR_AGO = "超1年未登录";

    public static String format(Date date) {

        Calendar calendar = Calendar.getInstance();
        long now = calendar.getTimeInMillis();
        long delta = now - date.getTime();

        // 逻辑判断
        if (delta < ONE_MINUTE)  return delta/ONE_MILLISECOND + ONE_SECOND_AGO;
        if (delta < ONE_HOUR)  return delta/ONE_MINUTE + ONE_MINUTE_AGO;
        if (delta < ONE_DAY)  return delta/ONE_HOUR + ONE_HOUR_AGO;
        if (delta < getTime(calendar, now)) return delta/ONE_DAY + ONE_DAY_AGO;
        if (delta < getTime(calendar, now)) return ONE_MONTH_AGO;
        if (delta < getTime(calendar, now)) return TWO_MONTH_AGO;
        if (delta < getTime(calendar, now)) return THREE_MONTH_AGO;
        if (delta < getTime(calendar, now)) return FOUR_MONTH_AGO;
        if (delta < getTime(calendar, now)) return FIVE_MONTH_AGO;
        if (delta < getTime(calendar, now)) return SIX_MONTH_AGO;
        if (delta < getTime(calendar, now)) return SEVEN_MONTH_AGO;
        if (delta < getTime(calendar, now)) return EIGHT_MONTH_AGO;
        if (delta < getTime(calendar, now)) return NINE_MONTH_AGO;
        if (delta < getTime(calendar, now)) return TEN_MONTH_AGO;
        if (delta < getTime(calendar, now)) return ELEVEN_MONTH_AGO;
        return ONE_YEAR_AGO;
    }

    private static long getTime(Calendar calendar, long now) {
        calendar.add(Calendar.MONTH, -1);
        return now - calendar.getTimeInMillis();
    }

 

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值