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

原创 2014年06月30日 14:17:18
/**
     * 是否是昨天
     * 
     * @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);
        }
    }


java获取当天,前天,明天,本周,本月,本年的开始日期时间和结束日期时间

//获取某年某月的第一天日期 public static Date getStartMonthDate(int year, int month) { Calendar calenda...
  • yanzhijun789
  • yanzhijun789
  • 2017年11月08日 17:59
  • 150

android 仿微信聊天时间格式化显示

仿微信聊天时间格式化显示。 在同一年的显示规则: 如果是当天显示格式为 HH:mm 例:14:45 如果是昨天,显示格式为 ...
  • u012121105
  • u012121105
  • 2017年02月09日 16:09
  • 2517

android 聊天列表页面的时间显示问题--1(星期显示,暂无分块)

“` //封装方法显示时间:错了 应该与当前时间比较的 private String transTime(long infoTime){ Date data=new Date();...
  • qq_28676355
  • qq_28676355
  • 2016年06月29日 19:17
  • 1073

Android/Java仿微信按时间长短分类显示时间戳

一般外部调用getTimePoint(Long time) 传入Long 型时间戳即可 仿照微信的时间戳显示规则 当天的显示无日期具体时间; 昨天的显示为昨天; 比昨天早且在过去一周内的,显示星期几;...
  • uyy203
  • uyy203
  • 2017年01月15日 03:57
  • 755

获取本周 本年 本月 本季度

//本周起始时间 $week_start = strtotime(date("Y-m-d H:i:s", mktime(0, 0, 0, date("m"), date("d") - date...
  • xkweiguang
  • xkweiguang
  • 2018年01月18日 13:17
  • 36

如何在SQL Server中查询本周 本月 本期, 本年的记录

=====================表名为:tableName 时间字段名为:theDate =====================datePart函数 ...
  • coolwzjcool
  • coolwzjcool
  • 2007年08月25日 11:17
  • 956

SQL 查询当天、本周、本月记录

--本周 select * from 表 where DateDiff(week,表对应字段,'2016-09-14')=0 --本天 select * from 表 where DateDiff(...
  • jiangcsc
  • jiangcsc
  • 2016年12月12日 14:00
  • 234

MySQL查询今天、昨天、本周、本月、本季、本年的数据

mysql实现查询今天、昨天、近7天、近30天、本周、上周、本月、上个月、本季度、上季度、本年、上年等查询语句。...
  • jiang_2992
  • jiang_2992
  • 2017年06月27日 16:40
  • 1762

Java判断日期是否是本日,本周,本月

参数:长整型日期 返回:布尔值 工具类如下: public class DateUtil { //判断选择的日期是否是本周 public static boolean isThisW...
  • J525DZQ
  • J525DZQ
  • 2014年12月01日 14:51
  • 6831

oracle 中查询本年、本月、 本周的数据

--本周 select * from 表 where time > sysdate - (to_char(sysdate-1,'D')) --本月 select * from 表 wher...
  • qq_38384994
  • qq_38384994
  • 2017年11月01日 18:00
  • 203
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Calendar 显示是否是 今天 本周 本月 本年 (应用于微信 QQ 显示历史聊天列表 时间显示)
举报原因:
原因补充:

(最多只允许输入30个字)