Java中的Calender 类概述

Calender 是抽象类,不能直接实例化,要用直接子类(GregorianCalender)实例化。

Calender 为某一时刻和一组日历字段之间的转换提供了一些方法,并为操作日历字段提供了一些方法。

Calender 提供了一个类方法 getInstance 用于获取 Calender 对象,其日历字段已使用当前日期和时间初始化:

Calender rightNow = new Calender.getInstance();

Calender 常用方法

方法名说明
public int get(int field)返回给定日历字段的值
public abstract void add(int field,int amount)根据日历的规则,将指定的时间量添加或减去给定的日历字段
public final void set(int year,int month,int date)设置当前日历的年月日
public class Demo{
    public static void main(String[] args){
        Calendar c = Calendar.getInstance();//多态的形式

        int year = c.get(Calendar.YEAR);
        int mouth = c.get(Calendar.MONTH) + 1;//因为这里的月份是从 0 开始的
        int day = c.get(Calendar.DATE);
        System.out.println(year+"-"+mouth+"-"+day);

        //public abstract void add(int field,int amount)
        c.add(Calendar.YEAR,-1);//当前年份减 1,如果是正数就是增加年份。下边同理
        c.add(Calendar.MONTH,2);//当前月份增加 2
        c.add(Calendar.DATE,-5);//当前日期减 5
        //再次获取日期
        year = c.get(Calendar.YEAR);
        mouth = c.get(Calendar.MONTH) + 1;
        day = c.get(Calendar.DATE);
        System.out.println(year+"-"+mouth+"-"+day);

        System.out.println("----------------");

        //public final void set(int year,int month,int date)
        //我想设置为2001年3月14日
        c.set(2001,3,14);
        //再次获取日期
        year = c.get(Calendar.YEAR);
        mouth = c.get(Calendar.MONTH);//注意:这里就不用加 1 了
        day = c.get(Calendar.DATE);
        System.out.println(year+"-"+mouth+"-"+day);
    }
}

练习:某年的2月有多少天?

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

public class Demo{
    public static void main(String[] args){
        //用于键盘输入年份
        Scanner input = new Scanner(System.in);
        System.out.print("请输入年份:");
        //输入年份
        int year = input.nextInt();

        //创建 Calendar 对象
        Calendar c = Calendar.getInstance();
        //设置为该年的3月1日
        //年份设置输入的年份,月份是从 0 开始的,所以月份设为 2 ,天为第 1 天
        c.set(year,2,1);
        //然后天数减一,就是二月的最后一天了
        c.add(Calendar.DATE,-1);
        //获得该年二月最后一天的日
        int day = c.get(Calendar.DATE);

        System.out.println(year+"年的2月共有"+day+"天");
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值