练习_请使用日期时间相关的API,计算出一个人已经出生了多少天与Calendar类介绍_获取对象的方式
练习_请使用日期时间相关的API,计算出一个人已经出生了多少天
请使用日期时间相关的API,计算出一个人已经出生了多少天。
思路:
1.获取当前时间对应的毫秒值
2.获取自己出生日期对应的毫秒值3.两个时间相减(当前时间-出生日期)
1.
package Date; /* //练习:请使用时间相关的API,计算一个人已经出生多少天了 //分析:1.使用Scanner类中的方法next,获取出生日期 //2.使用DateFormat类中的方法Parse,把字符串的出生日期,解析为Date格式的出生日期 //3.把Date格式的出生日期转化为毫秒值 //4.获取当前日期,转化为毫秒值 //5.使用当前日期的毫秒值-出生日期的毫秒值 //6.把毫秒差值转换为天(s/1000/60/60/24) */ import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Scanner; public class Demo03_lianxi { public static void main(String[] args) throws ParseException { System.out.println("请输入出生日期(年.月.日):"); //1.获取键盘输入的出生日期 String birthString = new Scanner(System.in).next(); //2.将字符串转换为日期 SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd"); Date birthDate = sdf.parse(birthString); //3.获取今天的日期 Date todayDate = new Date(); //4.将出生日期与今天的日期转换为毫秒对象 long birthSecond = birthDate.getTime(); long todaySecond = todayDate.getTime(); long resultSecond = todaySecond - birthSecond; if(resultSecond<0){ System.out.println("你还没出生呢!"); }else{ System.out.println("你已经出生了"+resultSecond/1000/60/60/24+"天"); } } }
2.
package Date; /*
//练习:请使用时间相关的API,计算一个人已经出生多少天了
//分析:1.使用Scanner类中的方法next,获取出生日期
//2.使用DateFormat类中的方法Parse,把字符串的出生日期,解析为Date格式的出生日期
//3.把Date格式的出生日期转化为毫秒值
//4.获取当前日期,转化为毫秒值
//5.使用当前日期的毫秒值-出生日期的毫秒值
//6.把毫秒差值转换为天(s/1000/60/60/24)
*/
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Scanner; public class Demo04_Total_Brithday { public static void main(String[] args) throws ParseException { Scanner data = new Scanner(System.in); System.out.println("请输入您的出生日期,格式为:1999-02-03"); String brithday_data = data.next(); // 获取出生日期,类型为字符串 // 通过SimpleDateFormatf类中的parse把出生日期解析为Date格式的出生日期 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date brithdaydata = sdf.parse(brithday_data); // 把Data格式的出生日期转换成毫秒值 long brithday_time = brithdaydata.getTime(); // 获取当前日期,转换成毫秒值 long today = new Date().getTime(); // 使用当前日期的毫秒值-出生日期的毫秒值 long time = today-brithday_time; // 把毫秒差值转换成天(1天 = 24 x 60 x 60 x 1000 = 86400000) long total_days = time/24/60/60/1000; System.out.println("从您的出生日期到现在共有:"+total_days+"天"); } }
3
package Date; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Scanner; /* 练习: 请使用日期时间相关的API,计算出一个人已经出生了多少天。 分析: 1.使用Scanner类中的方法next,获取出生日期 2.使用DateFormat类中的方法parse,把字符串的出生日期,解析为Date格式的出生日期 3.把Date格式的出生日期转换为毫秒值 4.获取当前的日期,转换为毫秒值 5.使用当前日期的毫秒值-出生日期的毫秒值 6.把毫秒差值转换为天(s/1000/60/60/24) */ public class Demo05_lianxi { public static void main(String[] args) throws ParseException { //1.使用Scanner类中的方法next,获取出生日期 Scanner sc = new Scanner(System.in); System.out.println("请输入您的出生日期,格式:yyyy-MM-dd"); String birthdayDateString = sc.next(); //2.使用DateFormat类中的方法parse,把字符串的出生日期,解析为Date格式的出生日期 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date birthdayDate = sdf.parse(birthdayDateString); //3.把Date格式的出生日期转换为毫秒值 long birthdayDateTime = birthdayDate.getTime(); //4.获取当前的日期,转换为毫秒值 long todayTime = new Date().getTime(); //5.使用当前日期的毫秒值-出生日期的毫秒值 long time = todayTime-birthdayDateTime; //6.把毫秒差值转换为天(s/1000/60/60/24) System.out.println(time/1000/60/60/24); } }
4.
package Date; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Scanner; //练习:请使用时间相关的API,计算一个人已经出生多少天了 //分析:1.使用Scanner类中的方法next,获取出生日期 //2.使用DateFormat类中的方法Parse,把字符串的出生日期,解析为Date格式的出生日期 //3.把Date格式的出生日期转化为毫秒值 //4.获取当前日期,转化为毫秒值 //5.使用当前日期的毫秒值-出生日期的毫秒值 //6.把毫秒差值转换为天(s/1000/60/60/24) public class DemoBirth { public static void main(String[] args) throws ParseException { //分析:1.使用Scanner类中的方法next,获取出生日期 Scanner scanner=new Scanner(System.in);//键盘输入天数 System.out.println("请输入您的出生日期,格式:yyyy-MM-dd"); String birthdayDateString=scanner.next();//获取键盘输入内容 //使用DateFormat类中的方法Parse,把字符串的出生日期,解析为Date格式的出生日期 SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); Date date=sdf.parse(birthdayDateString); System.out.println("您的出生日期="+date); //3.把Date格式的出生日期转化为毫秒值 long birthdayDateTime=date.getTime(); //4.获取当前日期,转化为毫秒值 long todayTime=new Date().getTime(); //5.使用当前日期的毫秒值-出生日期的毫秒值 long time=todayTime-birthdayDateTime; //6.把毫秒差值转换为天(s/1000/60/60/24) System.out.println("您破蛋已经"+time/1000/60/60/24+"天了"); } }
Calendar类介绍_获取对象的方式
日历我们都是见过的吧
java.uti1.Calendar是日历类,在Date后出现,替换掉了许多Date的方法。该类将所有可能用到的时间信息封装为静态成员变量,方便获取。日历类就是方便获取各个时间属性的。
获取方式
Calendar为抽象类,由于语言敏感性,Calendar类在创建对象时并非直接创建,而是通过静态方法类对象,如下∶
Calendar静态方法
public static calendar getInstance():使用默认时区和语言环境获得一个日历
package Date_demo02; /* java.util.calendar类:日历类 calendar类是一个抽象类,里边提供了很多操作日历字段的方法(YEAR、MONTH、DAY_OF_MONTH、HOUR ) caLendar类无法直接创建对象使用,里边有一个静态方法叫getInstance() ,该方法返回了calendar类的子类对象static calendar getInstance()使用黑认时区和语言环境获得一个日历。 */ import java.util.Calendar; public class Demo04_Calendar { public static void main(String[] args) { Calendar instance = Calendar.getInstance(); System.out.println(instance); } }
常用方法
根据Calendar类的API文档,常用方法有:
public int get(int field):返回给定日历字段的值。
public void set(int field,int value):梅给定的日历字段设置为给定值。
public abstract void add(int field,int amount):根据日历的规则,为给定的日历字段添加或减去指定的时间量。
public Date getTime():返回一个表示此Calendar时间值(从历元到现在的毫秒偏移量)的Date对象。Calendar类中提供很多成员常量,代表给定的日历字段︰
package Date_demo02; import java.util.Calendar; /* Calendar类的成员方法: public int get(int field):返回给定日历字段的值。 public void set(int field,int value):梅给定的日历字段设置为给定值。 public abstract void add(int field,int amount):根据日历的规则,为给定的日历字段添加或减去指定的时间量。 public Date getTime():返回一个表示此Calendar时间值(从历元到现在的毫秒偏移量)的Date对象。 成员方法的参数 成员方法的参数: int field:日历类的字段,可以使用calendar类的静态成员变量获取public static final int YEAR = 1;年 public static final int MONTH = 2;月 public static finat int DATE = 5;月中的某一天 public static final int DAY_OF_MONTH= 5;月中的某一天public static final int HOUR = 10;时 public static final int MINUTE = 12;分public static final int sECOND = 13秒; */ public class Demo05_Calendar { public static void main(String[] args) { demo01(); demo02(); demo03(); } /* public int get(int field):返回给定日历字段的值。参数:传递指定的日历字段(YEAR,NMONTH... ) 返回值:日历字段代表具体的值 */ private static void demo01(){ Calendar instance = Calendar.getInstance(); int i1 = instance.get(Calendar.YEAR); System.out.println(i1); int i2 = instance.get(Calendar.MONTH+1);//西方的月份0-11 东方:1-12 System.out.println(i2); int i3 = instance.get(Calendar.DATE); int i4 = instance.get(Calendar.DAY_OF_MONTH); System.out.println(i3); System.out.println(i4); } /* public void set(int field, int value):将给定的日历字段设置为给定值。参数: int field:传递指定的日历字段(YEAR, MONTH. . . )int value:传递的字段设置的具体的值 */ private static void demo02(){ Calendar instance = Calendar.getInstance(); instance.set(Calendar.YEAR,9999); instance.set(Calendar.MONTH,9); instance.set(Calendar.DATE,9); instance.set(8888,8,8); int i1 = instance.get(Calendar.YEAR); System.out.println(i1); int i2 = instance.get(Calendar.MONTH+1);//西方的月份0-11 东方:1-12 System.out.println(i2); int i3 = instance.get(Calendar.DATE); int i4 = instance.get(Calendar.DAY_OF_MONTH); System.out.println(i3); System.out.println(i4); } /* public abstract void add(int field,int amount):根据日历的规则,为给定的日历字段添加或减去指定的时间量把指定的字段增加/减少指定的值 参数: int field:传递指定的日历字段(YEAR , MONTH. . .)int amount:增加/减少的值 正数:增加 负数:减少 */ private static void demo03(){ Calendar instance = Calendar.getInstance(); instance.add(Calendar.YEAR,2); int i1 = instance.get(Calendar.YEAR); System.out.println(i1); int i2 = instance.get(Calendar.MONTH+1);//西方的月份0-11 东方:1-12 System.out.println(i2); int i3 = instance.get(Calendar.DATE); int i4 = instance.get(Calendar.DAY_OF_MONTH); System.out.println(i3); System.out.println(i4); } }