Calendar 显示是否是 今天 本周 本月 本年 (应用于微信 QQ 显示历史聊天列表 时间显示)

/**
     * 是否是昨天
     * 
     * @param time
     * @return
     */
    public static boolean isYesterday(long time) {
        Calendar cal = Calendar.getInstance();
        int d = cal.get(Calendar.DAY_OF_MONTH);
        int dy = cal.get(Calendar.YEAR);
        cal.setTimeInMillis(time);
        int i = cal.get(Calendar.DAY_OF_MONTH);
        int iy = cal.get(Calendar.YEAR);
        if (d == 1) {
            cal.set(Calendar.DAY_OF_MONTH, 0);
            d = cal.get(Calendar.DAY_OF_MONTH);
            return d == i && dy == iy;
        }
        return d - 1 == i && dy == iy;
    }

    /**
     * 得到本周周一
     * 
     */
    public static long getMondayOfThisWeek() {
        Calendar c = Calendar.getInstance();
        int day_of_week = c.get(Calendar.DAY_OF_WEEK) - 1;
        if (day_of_week == 0)
            day_of_week = 7;
        c.add(Calendar.DATE, -day_of_week + 1);
        return c.getTimeInMillis();
    }

    /**
     * 得到本周周日
     * 
     */
    public static long getSundayOfThisWeek() {
        Calendar c = Calendar.getInstance();
        int day_of_week = c.get(Calendar.DAY_OF_WEEK) - 1;
        if (day_of_week == 0)
            day_of_week = 7;
        c.add(Calendar.DATE, -day_of_week + 7);
        return c.getTimeInMillis();
    }

    /**
     * 是否是这个星期
     * 
     * @param time
     * @return
     */
    public static boolean isWeek(long time) {
        long startWeek = getMondayOfThisWeek(); // 本周一
        long endWeek = getSundayOfThisWeek();
        return time >= startWeek && time <= endWeek;
    }

    /**
     * 显示星期格式
     * 
     * @param time
     * @return
     */
    public static String showWeekString(long time) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTimeInMillis(time);
        if (Calendar.MONDAY == calendar.get(Calendar.DAY_OF_WEEK)) {
            return "星期一";
        }
        if (Calendar.TUESDAY == calendar.get(Calendar.DAY_OF_WEEK)) {
            return "星期二";
        }
        if (Calendar.WEDNESDAY == calendar.get(Calendar.DAY_OF_WEEK)) {
            return "星期三";
        }
        if (Calendar.THURSDAY == calendar.get(Calendar.DAY_OF_WEEK)) {
            return "星期四";
        }
        if (Calendar.FRIDAY == calendar.get(Calendar.DAY_OF_WEEK)) {
            return "星期五";
        }
        if (Calendar.SATURDAY == calendar.get(Calendar.DAY_OF_WEEK)) {
            return "星期六";
        }
        if (Calendar.SUNDAY == calendar.get(Calendar.DAY_OF_WEEK)) {
            return "星期日";
        }
        return "星期一";
    }

    /**
     * 是否是今年
     * 
     * @param time
     * @return
     */
    public static boolean isYear(long time) {
        Calendar cal = Calendar.getInstance();
        int dy = cal.get(Calendar.YEAR);
        cal.setTimeInMillis(time);
        int iy = cal.get(Calendar.YEAR);
        return dy == iy;
    }

    /**
     * 今天 昨天 本周 本年 更久 显示格式
     * 
     * @param time
     * @return
     */
    public static String CastsendTime(long time) {
        // 今天
        if (isCurrentDay(time)) {
            return long2String(time, FORMAT_DATE_HHMM);
        }// 昨天
        else if (isYesterday(time)) {
            return FORMAT_DATE_YESTERDAY;
        }// 这个星期
        else if (isWeek(time)) {
            return showWeekString(time);
        } else if (isYear(time)) {
            return long2String(time, FORMAT_DATE_MMDD);
        } else {
            return long2String(time, FORMAT_DATE_YYMMDD);
        }
    }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值