2.分析一下需求,并用代码实现
通过键盘录入日期字符串,格式(2015-10-10),获取该字符串表示的日期是星期几,以及这一年的第几天
如输入:2015-10-10,输出“2015年10月10日是星期二,是2015年的第293天”
public class Week_GetDate{
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
System.out.println("请输入日期:格式为yyyy-MM-dd");
String sdate = scan.nextLine();
//1.以使用正则表达式按-分隔,返回字符串数组,s[0]得到年份,s[1]得到月份,s[2]得到每个月的第几天
String[] s = sdate.split("-");
int year = Integer.parseInt(s[0]);
int month = Integer.parseInt(s[1]);//第几月
int day = Integer.parseInt(s[2]);//每个月第几天
Calendar calendar = Calendar.getInstance();//返回的是Calender的一个子类GregorianCalendar
calendar.set(year,month-1,day);//这里为什么是month-1,比如今天是4月1日,4月刚刚开始不足月,求天数即可。
int week = calendar.get(Calendar.DAY_OF_WEEK)-1;
String wd = "日";//因为DAY_OF_WEEK默认是7,所以这里设置默认日期为星期日
switch(week){
case 1:
wd = "一";break;
case 2:
wd = "二";break;
case 3:
wd = "三";break;
case 4:
wd = "四";break;
case 5:
wd = "五";break;
case 6:
wd = "六";break;
}
int date = calendar.get(Calendar.DAY_OF_YEAR);
System.out.println(year + "年" + month + "月" + day +"日" + "是星期" + week +",是" + year +"的第" + date + "天");
}
}
执行结果: