Calendar类的使用

来源:互联网 发布:虚拟商品自动发货源码 编辑:程序博客网 时间:2024/05/01 01:42

Calendar类的使用

---雨竹清风

1. 获取当前的时间(年月日,月份)

很容易想到使用Date类,而Date类却又不知道如何操作日历,所以首先创建的是一个GregorianCalendar对象,然后再调用getTime方法来获取时间。

 

GregorianCalendar d = new GregorianCalendar();

           Date  date = d.getTime();

           System.out.println(date);

2. 如果只想得到年/月/日的信息,那么就需要先构造一个GregorianCalendar对象,然后用setTime方法来初始化一个时间,然后通过get方法获取年/月/日。

GregorianCalendar cal = new GregorianCalendar();

           cal.setTime(date);

           int year = cal.get(Calendar.YEAR);

           System.out.println(year);

3. 打印如下图的一张日历


声明一个GregorianCalendar对象。

GregorianCalendar d = new GregorianCalendar();

1)    首先要知道今天是哪一天,使用int today = d.get(Calendar.DAY_OF_MONTH)来获取今天的日期。

2)    需要知道今天是哪一个月,使用int month = d.get(Calendar.MONTH);

3)    还需要知道今天是周几,使用int weekday = d.get(Calendar.DAY_OF_WEEK);

4)    为了打印的日历从1号开始打印(原因是今天不一定是1号),需要设置一下d.setTime(Calendar.DAY_OF_MONTH,1);

5)    随后就开始循环打印日历,在每次循环时,要知道目前打印到哪一天了,所以设置一个变量day来存放当前打印的日期,int day = d.get(Calendar.DAY_OF_MONTH);

6)    下一步是判断当前打印的日期是否是今天,若是今天输出日期后,再输出一个*,否则输出日期后,再输出空格。

7)    什么时候换行呐?当当前打印的日期是周六后,开始打印换行符。

if(weekday == Calendar.SATURDAY){

                      System.out.println();

                 }

8)    然后将日期累加1,即打印的日期往后推1天。使用的是add方法。

d.add(Calendar.DAY_OF_MONTH, 1);

      9)再获取weekday用来进行比较是否是周六

循环结束的条件是当前的month不是最初本月。

 

       GregorianCalendar d = new GregorianCalendar();//创建一个日历对象

       int today = d.get(Calendar.DAY_OF_MONTH);//获取一个月中的第一天

       int month = d.get(Calendar.MONTH);//获取当前的月份

       d.set(Calendar.DAY_OF_MONTH, 1);

       int weekday = d.get(Calendar.DAY_OF_WEEK);//获取一个周的第一天

       System.out.println("Sun  Mon  Tue  Wed  Thu  Fri  Sat");

       do{

           int day = d.get(Calendar.DAY_OF_MONTH);//

           System.out.printf("%3d", day);

           if(day == today){//若是今天,后面加*

              System.out.print("*");

           }else{

              System.out.print(" ");

           }

//设置一个新的一行

           if(weekday == Calendar.SATURDAY){//若是周六则需要换行

              System.out.println();

           }

           //将天数加1

           d.add(Calendar.DAY_OF_MONTH, 1);

           weekday = d.get(Calendar.DAY_OF_WEEK);//获取当前日期是周几      

       }while(d.get(Calendar.MONTH) == month);


0 0
原创粉丝点击