获取该字符串表示的日期是星期几,以及这一年的第几天?

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 + "天");
        }
}

执行结果:
在这里插入图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值