输入生日,计算到目前为止的天数,以及活到10000天的日期
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 /** 2 * 文件注释: 3 * @title: Test03.java 4 * @package atest.dak.com 5 * @author: YangshuaiWang E_mail: 13272885616@163.com 6 * @date: 2017年3月3日 上午11:24:27 7 * File_description: 8 * 9 * 10 */ 11 12 package atest.dak.com; 13 14 import java.text.ParseException; 15 import java.text.SimpleDateFormat; 16 import java.util.Date; 17 import java.util.Scanner; 18 19 public class Test03 { 20 public static void main(String[] args) throws ParseException { //U+4E00~U+9FA5 21 Scanner scan = new Scanner(System.in); 22 System.out.println("请输入你的出生日期(yyyy/MM/dd)"); 23 String birthday_str = scan.nextLine(); //读取生日;注意:不能用next(),原因不详 24 System.out.println("出生日期:" + birthday_str); 25 System.out.println("===one==="); 26 SimpleDateFormat sdf = new SimpleDateFormat("yyy/MM/dd"); 27 Date birthday_date = sdf.parse(birthday_str); // String -->> Date 28 long birthday_time = birthday_date.getTime(); // 获取生日的毫秒数 29 System.out.println("出生时间毫秒数:" + birthday_time); 30 System.out.println("===two==="); 31 Date now_date = new Date(); //获取当前日期 32 String now_str = sdf.format(now_date); // Date -->> String 33 long now_time = now_date.getTime(); //获取当前时间的毫秒数 34 System.out.println("当前日期:" + now_str); 35 System.out.println("当前时间毫秒数:" + now_time); 36 System.out.println("===three==="); 37 long D_value_time = now_time - birthday_time; // 计算当前和生日的毫秒差 38 System.out.println("当前时间和出生时间的毫秒差值:" + D_value_time); 39 long days = D_value_time / 1000 / 60 / 60 / 24; // 计算天数 40 System.out.println("你已经活了:" + days + "天啦。"); 41 System.out.println("距离你活10000天还差" + (10000 - days) + "天"); 42 System.out.println("===four==="); 43 Date goal_date = new Date(); 44 long time = birthday_time + (10000L * 24 * 60 * 60 * 1000); //计算到10000天所需的毫秒数 45 goal_date.setTime(time); 46 System.out.println("你活到10000天的日期是:" + sdf.format(goal_date)); 47 } 48 49 }
备注:今天三少有事,改天会进行注释;待更新中......2017年3月4日10:22:27
1 利用Date类来读取日期
2 利用SimpleDateFormat类实现date对象与string对象之间的相互转换
2.1 SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
2.1.1 string对象 -->> date对象
date对象 -->> sdf.parse(string对象)
2.1.2 date对象 -->> string对象
stirng对象 = sdf.format(date对象)
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 package lesson; 2 3 import java.text.ParseException; 4 import java.text.SimpleDateFormat; 5 import java.util.Date; 6 7 /** 8 * java.text.SimpleDateFormat 9 * 该类允许我们按照一个指定的日期格式在String与Date之间进行相互转换 10 * @author soft01 11 * 12 */ 13 public class Demo02 { 14 public static void main(String[] args) throws ParseException { 15 Date now = new Date(); 16 System.out.println(now);//Mon Jan 16 00:26:48 CST 2017 17 18 /* 19 * yyyy-MM-dd HH:mm:ss a 20 */ 21 //Date类型对象 -->> 指定格式的字符串 22 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss a"); 23 String str = sdf.format(now); //将日期按照指定格式,然后返回一个字符串 24 System.out.println(str); 25 26 //指定格式的字符串 -->> Date类型对象 27 Date date = sdf.parse(str); 28 System.out.println(date); 29 30 } 31 }
2017-3-28 16:48:48