本来以为这个问题很简单的,后来发现,有问题!
package cn.baidu.hao;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Scanner;
public class time {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
System.out.println("请按照yyyy-MM-dd格式输入一个日期");
String inputstr=scan.nextLine();
String startstr=inputstr.substring(0, 4)+"-01-01";
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
java.util.Date now;
java.util.Date inputdate;
long l;
try {
now = df.parse(startstr);
inputdate= df.parse(inputstr);
l=inputdate.getTime()-now.getTime();//这里的时间差是毫秒,两个时间点分别到公元元年的时间差相减
System.out.println("这是一年中的第"+(l/(24*60*60*1000)+1)+"天");
}
catch (ParseException e) {
e.printStackTrace();
}
}
}
结果是:
请按照yyyy-MM-dd格式输入一个日期
2012-12-12
这是一年中的第347天
按说是2012-12-12减去2012-01-01啊,咋跑出来个347,why?
|