java 常用类之Calendar-Date

一.Calendar:日历类:

Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、   DAY_OF_MONTH、HOUR 等 日历字段之间的转换提供了一些方法,并为操作日历 字段(例如获得下星期的日期)提供了一些方法
Calendar该类是一个抽象类:不能实例化的,所以通过一下这个方法来创建对象
                public static Calendar getInstance()
                public int get(int field)返回给定日历字段的值

    public static final int YEAR:表示日历中 的年
    public static final int MONTH:月份:是0开始计算的
    public static final int DATE:和DAY_OF_MONTH是同义词,表示月份中的某天

Calendar常用的成员方法:

    public abstract void add(int field,int amount)
            为给定的日历的字段添加或者减去时间偏移量
    public final void set(int year,int month,int date)
            设置日历字段 YEAR、MONTH 和 DAY_OF_MONTH 的值

键盘录入一个年份,获取任意一年的二月有多少天

分析:
    1)创建键盘录入对象,录入某一个年份
    2)获取日历类对象,getInstance()
    3)设置一个日历字段,年,月,日
        日历类对象.set(year,2,1):这里其实表示3月1
    4)将时间往前推一天
        日历类对象.add(Calendar.DATE,-1) ;
    5)获取DATE月份中的天,输出即可

public class CalendarTest {

    public static void main(String[] args) {

        //创建键盘录入对象
        Scanner sc = new Scanner(System.in) ;

        //录入并接收数据
        System.out.println("请您输入一个年份:");
        int year = sc.nextInt() ;

        //创建日历类对象
        Calendar c = Calendar.getInstance() ;
        //设置日历的字段,年,月,日
        c.set(year, 2, 1) ;//其实月份:(month+1):3月1

        //将时间往前推算一天
        c.add(Calendar.DATE, -1) ;

        System.out.println("任意一年的二月有:"+c.get(Calendar.DATE));
    }
}

二.
Date类:日期类:

表示特定的瞬间,精确到毫秒。

常用的构造方式:
    public Date():表示分配的一个Date对象:无参: 通过无参构造获取当前系统的具体的时间
    public Date(long date):指定一个时间毫秒值  和它1970-1-1 00:00:00有时间差

Date中的两个成员方法:

    public long getTime():获取当前时间毫秒值

    如果知道Date对象,可以通过getTime()获取时间毫秒值
    public void setTime(long time)

使用:

键盘录入你的出生年月日,计算你来到这个世界有多少天了?

分析:
    1)键盘键盘录入出生年月日,录入这一个String类型的数据
    2)创建SimpleDateFormat对象指定一种模式
    3)将当前String日期文本格式转换成date对象
    4)通过Date对象获取getTime():获取时间毫秒值
    5)得到当前系统时间的毫秒值(System.currentTimeMillis)
    6):5)-4)=long 类型的时间
    7)换算成多少天
    8)输出
public class MyYearOldTest {

    public static void main(String[] args) throws ParseException {

        //创建键盘录入对象
        Scanner sc = new Scanner(System.in) ;

        //录入并接收数据
        System.out.println("请输入你的出生年月日: ");
        String line = sc.nextLine() ;

        //使用刚才DateUtil工具类
        Date d = DateUtil.stringToDate(line, "yyyy-MM-dd") ;
        //获取当前出生年日所在的时间毫秒值
        long oldTime = d.getTime() ;
        //获取当前系统时间的毫秒值
        long nowTime = System.currentTimeMillis() ;

        long time = nowTime - oldTime ;

        //换算
        long day = time/1000/60/60/24 ;

        //输出
        System.out.println("你来到这个世界有"+day+"天了");
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值