Java计算出生一万天的纪念日期
西西里cc 2018-07-30 06:05:26 第一种方法,计算一万天后的毫秒值加上出生当天日期的毫秒值,貌似超过了long的取值范围(结果大概1.6亿),问题就是这么返回该毫秒值的当前日期
用第二种Calendara.add计算结果不准确
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;
public class Test10000 {
public static void main(String[] args) throws ParseException {
System.out.println("----请输入自己的生日:(yyyy-mm-dd)----");
Scanner sc = new Scanner(System.in);
String birth = sc.nextLine();
// 将用户的生日转换为Date
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date1 = sdf.parse(birth);
System.out.println(date1);// 出生的date1
/*
* 第一种方法,问题是10000天之后的日期的毫秒值超过了long的取值范围
*/
Date date = new Date();
/**
* 计算一万天纪念日
*/
long time10 = 10000*60*60*24*1000+date1.getTime() ;
System.out.println("一万天的毫秒值: "+10000*60*60*24*1000+" ---答案结果应该是864,000,000,000,");
System.out.println("出生当天的毫秒值: "+date1.getTime());
System.out.println(date);
/*
* 第二种方法计算,先计算从出生到今天多少天,再用10000-度过的天数
*/
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DAY_OF_YEAR, 1602);
System.out.println(calendar.getTime());
}
}