A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 15225159271 中级黑马   /  2015-8-1 10:33  /  288 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public class Test9 {

        public static void main(String[] args) throws Exception{
               
                System.out.println("开始输入日期");
                int month=0,day=0;
                long year=0;
                //键盘录入日期
                BufferedReader br=
                                new BufferedReader(new InputStreamReader(System.in));
                String s=br.readLine();
                        //将字符串用“-”切割后,将每个元素转为基本数据类型
                        String[] str=s.split("-");
                        year=Long.parseLong(str[0]);//年份
                         month=Integer.parseInt(str[1]);//月份
                         day=Integer.parseInt(str[2]);//日期
                         if(month>12)
                                 throw new RuntimeException("输入的月份有误");
                         if(day>31)
                                 throw new RuntimeException("输入的日期有误");
                        //调用Day方法算出天数
                        System.out.println(year+"年"+month+"月"+day+"日");//按要求输出
                        System.out.println("第"+Day(year,month,day)+"天");//按要求输出
                        WeekDay(s);//调用方法计算星期几
                        br.close();//关闭流资源
               
        }
        @SuppressWarnings("deprecation")
        public static void WeekDay(String day){
                String []str={"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
                DateFormat df=new SimpleDateFormat("yyyy-MM-dd");//将模式封装到对象中
                Date d=new Date();
                try{
                        d=df.parse(day);
                }catch(ParseException e){
                        e.printStackTrace();//对异常进行简单处理
                }
                for(int i=0;i<str.length;i++){
                        if(d.getDay()==(i)){//找出是星期几
                                System.out.println(str[i]);
                        }
                }
        }
        public static int Day(long year,int month,int day){
                int dateSum1=0;//定义变量记录每月的天数
                for(int i=1;i<month;i++){
                        switch(i){
                        case 1:case 3:case 5:case 7:case 8:case 10:
                        case 12:dateSum1+=31;//1、3、5、7、8、10、12月为31天
                        break;
                        case 4:case 6: case 9 :case 11:dateSum1+=30;//4、6、9、11月30天
                        break;
                        case 2:
                                //判断是否为闰年,是加上29,不是加上28
                                if(((year%4==0)&(year%100!=0))|(year%400==0)|dateSum1<30){
                                        dateSum1+=29;
                                }else{
                                        dateSum1+=28;
                                }
                                       
                               
                        }
                       
                }
                return dateSum1+day;
        }
       
       

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马