调用Date类计算从出生到现在过去多少天,代码及注释如下:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class DateYourDays {
public static void main(String[] args) throws ParseException {
//键盘录入你的出生年月日
Scanner sc = new Scanner(System.in);
System.out.println("please input your birthday:");
String line = sc.nextLine();
//String -- Date
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date d = sdf.parse(line);
//生日的毫秒值
long myTime = d.getTime();
//当前时间的毫秒值
long nowTime = System.currentTimeMillis();
//出生到当前时间的毫秒值
long time = nowTime - myTime;
//毫秒值换算为天数
long day = time / 1000 / 60 / 60 /24;
System.out.println("你来到这个世界"+day+"天了~");
}
}
Calendar类:
Calendar
类是一个抽象类,它为特定瞬间与一组诸如
YEAR
、
MONTH
、
DAY_OF_MONTH
、
HOUR
等
日历字段
之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。瞬间可用毫秒值来表示,它是距
历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)的偏移量。
Calendar
提供了一个类方法 getInstance
,以获得此类型的一个通用的对象。Calendar
的 getInstance
方法返回一个 Calendar
对象,其日历字段已由当前日期和时间初始化:
(来自API)Calendar rightNow = Calendar.getInstance();
如下代码及注释实现判断任意一年二月有多少天:
import java.util.Calendar;
import java.util.Scanner;
/*
* 获取任意一年的二月有多少天
*
* 分析:
* 获取月份:2 //月份加一(月份是从零开始计算的)
* 天数:1
* 往前推一天得到的日期就是二月的天数
*/
public class CalendarTest {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入年份:");
int year = sc.nextInt();
//设置日期
Calendar c = Calendar.getInstance();
//三月一号
c.set(year,2,1);
//日期推后一天
c.add(Calendar.DATE,-1);
System.out.println(c.get(Calendar.DATE));
}
}