黑马程序员技术交流社区

标题: 输入年月日,判断是这一年的第多少天? [打印本页]

作者: lijiansheng    时间: 2015-6-8 21:16
标题: 输入年月日,判断是这一年的第多少天?
import java.util.*;

class Test{
        //输入一个年月日,判断这一天是这个年的第多少天
        /*
        首先从控制台输入年月日 用输入流控制       
       
        */
        public static void main(String[] args){
        //依次输入年月日,需要判断年月日输入是否正确,不正确重新输入
                int year,month,day;
                int days=0;
                int d=0;
                Input in=new Input();
                //定义一个布尔型变量 控制 do while 循环 先让y=false,然后执行语句,如果出现错误y=true,然后重新运行
                boolean y;
                do{
                         y=false;
                        System.out.println("请输入年份");
                        year=in.input();
                        System.out.println("输入的年份为"+year);
                       
                        System.out.println("请输入月份");
                        month=in.input();
                        System.out.println("输入的月份为"+month);
                       
                        System.out.println("请输入日期");
                        day=in.input();
                        System.out.println("输入的日期为"+day);
                        if(month<0||month>12||day<0||day>31){
                                y=true;
                                System.out.println("输入错误,请重新输入");
                          
                        }


                }while(y);
                //接下来计算这天是这一年的哪一天 首先每个月多少天计算出来 一三五七八十蜡 三十一天永不差
               
                // 判断二月是闰年还是平年 闰年29 天 平年 28天 用switch结构.用for循环 将每个月的天数加起来
                for(int i=1;i<month;i++){
                        switch(i){
                                case 1:
                                case 3:
                                case 5:
                                case 8:
                                case 10:
                                case 12:
                                days=31;
                                break;
                                case 4:
                                case 6:
                                case 7:
                                case 9:
                                case 11:
                                days=30;
                                break;
                               
                                case 2:
                                if(year%400==0||(year%4==0&&year%100!=0)){
                                        days=29;
                               
                                }else{
                                        days=28;
                                }
                                break;
                        }
               
                d+=days;
                }
                System.out.println("输入的年月日为"+year+"-"+month+"-"+day);
                 
                System.out.println("这是一年中的第"+(d+day)+"天");
               
               
        }
       

}
class Input{

        public static  int input(){
                int value=0;
                Scanner s=new Scanner(System.in);
                value=s.nextInt();
                return value;
               
        }
}
作者: lijiansheng    时间: 2015-6-8 21:21
自己搞出来了
作者: lijiansheng    时间: 2015-6-9 21:10
自己赞一个




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2