代码如下:
/*
* 分析以下需求,并用代码实现:
(1)通过键盘录入日期字符串,格式(2015-10-20)
(2)输出该日期是星期几及这一年的第几天
(3)如输入:2015-10-20,输出"2015年-10月-20日 是 星期二,是 2015年的第 293 天"
* */
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;
public class Work {
public static void main(String[] args) throws ParseException {
Scanner input = new Scanner(System.in);
System.out.println("请输入一个日期,格式为:2000-01-01");
String str = input.nextLine();
Date date = new Date();
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
date = df.parse(str);
Calendar cd = Calendar.getInstance();
cd.setTime(date);
int week = cd.get(Calendar.DAY_OF_WEEK);
String str2 = chineseWeek(week);
int year = cd.get(Calendar.YEAR);
int month = cd.get(Calendar.MONTH) + 1;
int day = cd.get(Calendar.DAY_OF_MONTH);
long num = cd.getTimeInMillis();
//System.out.println(num);
cd.set(year,0,0);
long num1 = cd.getTimeInMillis();
//System.out.println(num1);
long num2 = (num - num1) / 1000 / 60 / 60 / 24;
System.out.println(year + "年-" + month + "月-" + day + "日 是"
+ str2 + ",是" + year + "年的第" + num2 + "天");
}
private static String chineseWeek(int week) {
String[] str = {"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
return str[week - 1];
}
}