日期类函数
Date()类:
常用方法:Date getTime() 获取当前对象距离某日期的毫秒数
Date setTime(long time)用于设置当前对象的时间为参数指定的毫秒数,距离标准时间
SimpleDate函数
通常使用format()方法将日期转换为字符串,yyyy表示年,MM表示月,dd表示日期,HH表示小时,mm分钟,ss表示秒,也可以使用parse()方法将字符串转换为日期
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); //将某日日期转化为字符串 String str = simpleDateFormat.format(xx);
Calendar类:
常用方法:
Date getTime() 用于将Calendar类型转换为Date类型并返回
static Calendar getInstance():用户获取当前类的引用,不仅能获取当前的时间,还能指定需要获取的时间点
void set(int year,int month,int date,int hourOfDay,int minute,iint second) 根据参数设置年月日,Calendar.DATE是个常量,就是个固定值,永远不变。
例题:生日日期★★
题目描述
CCC老师的生日是YY年MM月DD日,他想知道自己出生后第一万天纪念日的日期(出生日算第0天)。
输入
输入有多行,格式为YY MM DD 其中1949<=YY<=2006,日期绝对合法。
输出
输出有多行。即CCC老师生日第一万天以后的日期,格式为 “Y-M-D”。
样例输入 1979 4 16 样例输出 2006-9-1
思路:输入给定日期(字符串),有目标天数(10000天),求纪念日期,如果通过分析年月日来计算天数的话,做起来非常麻烦,使用java自带的Date()函数 和 Calendar 类中的方法,很容易就可以解决问题。
首先需要明白的是,我们输入的年月日是字符串,而要通过使用Calendar类中的add()方法,所以需要先声明日期格式,再把输入的数据转换为日期类型,再调用Calendar类中的方法求得现在的时间和10000天以后的纪念时间,日期格式不能被输出,所以需要再把我们求得的纪念日期转换为字符串,最后输出即可
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.Scanner; public class fourth { public static void main(String[] args) throws ParseException { //image //创建日期格式 SimpleDateFormat s1= new SimpleDateFormat("yyyy-MM-dd"); Scanner s = new Scanner(System.in); while(s.hasNext()){ //输入字符串日期 int year = s.nextInt(); int month = s.nextInt(); int day = s.nextInt(); //然后将输入的字符串转换为日期格式 Date date =s1.parse(year+"-"+month+"-"+day); //创建Calendar 获取当前的时间 Calendar now = Calendar.getInstance(); //设置当前的时间 设置成date now.setTime(date); //然后给当前时间增加目标天数 now.add(Calendar.DATE,10000); Date date1 = now.getTime(); String str1 = s1.format(date1); String a[] = str1.split("-"); year= Integer.parseInt(a[0]); month =Integer.parseInt(a[1]); day=Integer.parseInt(a[2]); System.out.println(year+"-"+month+"-"+day); } } }