日历类Calendar

作者: 我是一只小小鸟_flying | 来源:发表于2018-05-21 15:52 被阅读99次

    1:定义

    Calendar 类是一个抽象类(Abstract Class),GregorianCalendar 是它的一个具体实现。,它为特定时间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)的偏移量。

    2:常用API

    3:设置指定的一个时间

      测试:

    4:获取时间信息

    主要API:int get(int field); 

    其中,参数 field 的值由 Calendar 类的静态常量决定。其中:YEAR 代表年,MONTH 代表月,HOUR 代表小时,MINUTE 代表分,如:

    测试:

    5:add方法

    6:Calendar与Date转换

    Calendar转为Date:

    Date转为Calendar:

    7:计算两个时间之间相隔天数

    8.CalendarUtil

    public class CalendarUtil {

    /**

        * 计算指定日期为当年第几周

        * @param year      指定的年份

        * @param month    指定的月份

        * @param day      指定的日

        * @return          指定日期为当年的第几周

        */

        public static int caculateWeekOfYear(int year,int month,int day){

            Calendar c = Calendar.getInstance();

            c.set(Calendar.YEAR, year);

            c.set(Calendar.MONTH, month - 1);

            c.set(Calendar.DATE, day);

            return c.get(Calendar.WEEK_OF_YEAR);

        }

        /**

        * 获取本月第一天是星期几

        */

        public static int getWeekOfFirstDay(Calendar c){

            Calendar calendar = c;

            calendar.set(Calendar.DAY_OF_MONTH, 1);

            return calendar.get(Calendar.DAY_OF_WEEK);

        }

        /**

        * 获取本月1号是该年的第几周

        */

        public static int getMonthStartWeek(Calendar c){

            Calendar calendar = c;

            calendar.set(Calendar.DATE, 1);

            return calendar.get(Calendar.WEEK_OF_YEAR);

        }

        /**

        * 获取当天是该年的第几周

        */

        public static int getCurrentWeekOfYear(){

            Calendar calendar = Calendar.getInstance();

            return calendar.get(Calendar.WEEK_OF_YEAR);

        }

        /**

        * 获取上月的总天数

        */

        public static int getLastMonthDays(Calendar c){

            Calendar calendar = c;

            calendar.set(Calendar.MONTH, calendar.get(Calendar.MONTH) - 1);

            return calendar.getActualMaximum(Calendar.DAY_OF_MONTH);

        }

        /**

        * 获取指定月份的总天数

        */

        public static int getCurrentMonthDays(int month){

            Calendar c = Calendar.getInstance();

            c.set(Calendar.MONTH, month);

            return c.getActualMaximum(Calendar.DAY_OF_MONTH);

        }

        /**

        * 获取指定年份有多少周

        * @param year

        */

        public static int getTotalWeekOfYear(int year){

            Calendar c = Calendar.getInstance();

            return c.getActualMaximum(Calendar.WEEK_OF_YEAR);

        }

        /**

        * 判断指定月份是否是当前月

        */

        public static boolean isCurrentMonth(int month){

            Calendar c = Calendar.getInstance();

            return (c.get(Calendar.MONTH) == month)?true:false;

        }

        /**

        * 计算指定的月份共有多少天

        */

        public static int getTotalDaysOfMonth(int year, int month){

            Calendar c = Calendar.getInstance();

            c.set(Calendar.YEAR, year);

            c.set(Calendar.MONTH, month);

            c.set(Calendar.DATE, 1);

            return c.getActualMaximum(Calendar.DAY_OF_MONTH);

        }

    相关文章

      网友评论

        本文标题:日历类Calendar

        本文链接:https://www.haomeiwen.com/subject/fytqjftx.html