Java常见对象Calendar类-36-set和add方法以及判断是否是闰年

       这篇继续学习Calendar的成员方法:add()和set()方法。Add()方法是根据字段去向前加或者向后减相关字段的值,而set()方法是直接给某字段设置具体值,或者给某几个字段一起赋值。

1.add()方法

package otherclass;
import java.util.Calendar;

public class Demo1_Calendar {

   public static void main(String[] args) {

     Calendar c = Calendar.getInstance();  //父类引用指向子类对象
     //c.add(Calendar.YEAR, 1);
     //c.add(Calendar.YEAR, -1);
     c.add(Calendar.MONTH, 1);
     // 下面来拼接成一个我们看得习惯的时间,日期格式
     System.out.println(c.get(Calendar.YEAR)+"年"+(getNumber(c.get(Calendar.MONTH)+1))+"月"
     +getNumber(c.get(Calendar.DAY_OF_MONTH))+"日 "+getNumber(c.get(Calendar.HOUR_OF_DAY))+ ":"
     +getNumber(c.get(Calendar.MINUTE))+ ":"+getNumber(c.get(Calendar.SECOND))+ " "+
     getWeek(c.get(Calendar.DAY_OF_WEEK)));
   }

   /*

    * 写一个返回符合中国人习惯的星期几的方法

    */

   public static String getWeek(int week) {
     String[] arr = {"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
     // 注意上面数组索引对应的星期,1表示星期日,索引0空着,因为Calendar.get(Calendar.DAY_OF_WEEK)的范围是1到7
     return arr[week];
   }
   /*

    * 月份,天和时分秒补齐0

    */

   public static String getNumber(int num) {

     return (num > 9)? "" + num : "0" + num;
   }
}

输出:20180525 18:20:29 星期五

2.set()方法

package otherclass;
import java.util.Calendar;

public class Demo1_Calendar {

   public static void main(String[] args) {

     Calendar c = Calendar.getInstance();  //父类引用指向子类对象
     //c.set(Calendar.YEAR, 2008);
     //c.set(Calendar.MONTH,7);  //注意这里7表示八月份
     //c.set(2008, 7, 8);        //直接设置2008-08-08
     c.set(2008, 7, 8, 20, 8, 8);    //设置年月日时分秒
     // 下面来拼接成一个我们看得习惯的时间,日期格式
     System.out.println(c.get(Calendar.YEAR)+"年"+(getNumber(c.get(Calendar.MONTH)+1))+"月"
     +getNumber(c.get(Calendar.DAY_OF_MONTH))+"日 "+getNumber(c.get(Calendar.HOUR_OF_DAY))+ ":"
     +getNumber(c.get(Calendar.MINUTE))+ ":"+getNumber(c.get(Calendar.SECOND))+ " "+
     getWeek(c.get(Calendar.DAY_OF_WEEK)));

   }

   /*

    * 写一个返回符合中国人习惯的星期几的方法

    */

   public static String getWeek(int week) {

     String[] arr = {"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
     // 注意上面数组索引对应的星期,1表示星期日,索引0空着,因为Calendar.get(Calendar.DAY_OF_WEEK)的范围是1到7
     return arr[week];
   }

   /*

    * 月份,天和时分秒补齐0

    */

   public static String getNumber(int num) {
     return (num > 9)? "" + num : "0" + num;
   }
}

输出:20080808 20:08:08 星期五

 

3.编程练习

题目:如何获取任意年份是平年还是闰年

 

分析:

1)键盘输入年,需要Scanner类

2)创建Calendar对象

3)通过set方法设置那一年的3月1日

4)将3月1日向前减去1

5)判断,如果是29天是闰年,否则返回false

package otherclass;

import java.util.Calendar;
import java.util.Scanner;

public class Demo2_Calendar {

   public static void main(String[] args) {

     Scanner sc = new Scanner(System.in);
     System.out.println("请输入一个年份,判断是闰年还是平年");
     int year = sc.nextInt();
     boolean b = getYear(year);
     System.out.println(b);
   }

   public static boolean getYear(int year) {
     //2.创建Calendar对象
     Calendar c = Calendar.getInstance();
     //3.位置那一年的三月1日
     c.set(year, 2, 1);   // 三月需要写成2
     //4.将日减去1
     c.add(Calendar.DAY_OF_MONTH, -1);
     //5.判断是否是29天
     return c.get(Calendar.DAY_OF_MONTH) == 29;
   }
}

 

 

 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值