从控制台接收一个“生日日期”,计算并打印他来到世界天数
public class Test01 {
public static void main(String[] args) {
//获取用户输入的时间,字符串格式
Scanner sc = new Scanner(System.in) ;
System.out.println("请您输入您的生日日期(格式:yyyy-MM-dd):");
String s = sc.nextLine();
//将用户输入的时间进行格式化
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd") ;
Date d = null;
try {
d = sdf.parse(s);
} catch (ParseException e) {
e.printStackTrace();
}
//获取用户输入的时间的毫秒级
long oldTime = d.getTime() ;
//获取当前时间的毫秒级
long nowTime = System.currentTimeMillis() ;
//当前时间的毫秒级-用户输入的时间的毫秒级,得出间隔的毫秒级
long time = nowTime - oldTime ;
//间隔的毫秒级除一天的毫秒级得出天数
long day = time/1000/60/60/24;
System.out.println("您来到这个世界有"+day+"天了");
}
}
根据生日算出年龄
public static int birthdayToAge(String birthday){
Date birthDate = null;
try {
//根据birthday计算出年龄
birthDate = new SimpleDateFormat("yyyy-MM-dd").parse(birthday);
} catch (Exception e) {
e.printStackTrace();
}
//获取当前系统时间
Calendar cal = Calendar.getInstance(); //毫秒
//如果出生日期大于当前时间,-1
if (cal.getTime().getTime() < birthDate.getTime()) {
return -1;
}
//取出系统当前时间的年、月、日部分
int yearNow = cal.get(Calendar.YEAR);
int monthNow = cal.get(Calendar.MONTH);
int dayOfMonthNow = cal.get(Calendar.DAY_OF_MONTH);
//将日期设置为出生日期
cal.setTime(birthDate);
//取出出生日期的年、月、日部分
int yearBirth = cal.get(Calendar.YEAR);
int monthBirth = cal.get(Calendar.MONTH);
int dayOfMonthBirth = cal.get(Calendar.DAY_OF_MONTH);
//出生的年月日 和 当前的年月日
//当前年份与出生年份相减,初步计算年龄
int age = yearNow - yearBirth;
//当前月份与出生日期的月份相比,如果月份小于出生月份,则年龄减1,表示不满多少周岁
if (monthNow < monthBirth) {
age--;
//如果月份相等,在比较日期,如果当前日,小于出生日,也减1,表示不满多少周岁
}else if(monthNow == monthBirth && dayOfMonthNow < dayOfMonthBirth){
age--;
}
return age;
}
算出指定时间是星期几
假定需要计算的时间是:1949年10月1日
public class Test01 {
public static void main(String[] args) throws ParseException {
Calendar cc = Calendar.getInstance();
cc.set(Calendar.YEAR, 1949);
cc.set(Calendar.MONTH,10-1);
cc.set(Calendar.DAY_OF_MONTH, 1);
int week = cc.get(Calendar.DAY_OF_WEEK);
System.out.println(week-1);
String[] arr = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
System.out.println("1949年10月1日那天是:"+arr[week-1]);
}
}