在javaSE阶段,Date类和Calendar类以后会经常用到 这两个类当中的一些常用方法 通过两个demo 进行学习和练习
第一个要求如下:让用户自己输入yyyy-MM-dd 格式的年月日 然后得出到今天为止活了多少天 ,这里面用到SimpleDateFormat Scanner 代码如下
第二个要求 利用Calendar计算闰年 代码如下
package cn.lijun.homework;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;
public class DateTest {
public static void main(String[] args) throws ParseException {
/*
* 计算活了多少天
要求用户自己输入出生年月日 格式为:YYYY-MM-dd
两个日期变成毫秒值,减法
*
* */
//fun();
fun1();
}
public static void fun() throws ParseException{
//1 提示用户输入日期 以及格式
System.out.println("请输入出生的日期 并且格式为 YYYY-MM-dd");
//2 获取键盘输入 出生的日期
String birthday = new Scanner(System.in).next();
//3 创建SimpleDateFormat 对象 写日期的格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
//4 将字符串日期 转成Date对象
Date birthdayDate = sdf.parse(birthday);
//5 获得今天的日期对象
Date today= new Date();
//6 将两个日期转毫秒值
long birthdaym = birthdayDate.getTime();
long todaym = today.getTime();
//7 二者相减 就是活的毫秒数、
long time = todaym-birthdaym;
//8判断 time是否小于0
if(time<0){
System.out.println("您输入的出生日期代表您还没有出生");
}else{
System.out.println("活了"+time/1000/60/60/24+"天");
}
}
/*
* 闰年计算
* 2000 3000
* 高级的算法: 日历设置到指定年份的3月1日,add向前偏移1天,获取天数,29闰年
*/
public static void fun1(){
Calendar c = Calendar.getInstance();
//1将日历设置成2019年3月1日
c.set(2019,2,1);
//2 将日历往前偏移一天
c.add(Calendar.DAY_OF_MONTH,-1);
//3 get 获取天数
int day = c.get(Calendar.DAY_OF_MONTH);
System.out.println(day);
}
}