java编程:输出两个日期之间的每一天是星期几,用0-6表示周日-周六。

java编程:输出两个日期之间的每一天是星期几,用0-6表示周日-周六。
如输入:2010-09-24,2010-09-28
输出:5,6,0,1,2

token 最后一个数 分隔符为- 然后用系统时间可以
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-09-30
System.out.println("请输入两个日期,格式为yyyy-MM-dd:");
//这里的意思是匹配一个日期格式的字符串
Pattern patt=Pattern.compile("[12]\\d{3}-(0?[1-9]|1[0-2])-([0-2]?\\d|3[01])");
Scanner scan=new Scanner(System.in);
String[] dates={null,null};
for (int i = 0; i < dates.length && scan.hasNext(patt); i++) {
dates[i]=scan.next(patt);
}
if(dates[1]==null){
//只要有一个为空,说明格式有问题或未输入
System.out.println("格式不正确.");
}else{
String patts="yyyy-MM-dd";
SimpleDateFormat sdf=new SimpleDateFormat(patts);
try {
Date date1 = sdf.parse(dates[0]);
Date date2 = sdf.parse(dates[1]);
if(date1.after(date2)){
//保证date1在前,date2在后
Date tmp=date1;
date1=date2;
date2=tmp;
}
System.out.println(sdf.format(date1));
System.out.println(sdf.format(date2));
GregorianCalendar gc=new GregorianCalendar();
gc.setTime(date1);
do {
System.out.println("日期:"+sdf.format(date1)+"\t星期"+(gc.get(Calendar.DAY_OF_WEEK)-1));
gc.add(Calendar.DATE, 1);
date1=gc.getTime();
} while (date1.before(date2));
} catch (ParseException e) {
e.printStackTrace();
}
}本回答被提问者采纳
相似回答