计算当前时间距离元年一月一日的总天数,并显示现在是星期几

package create;

    import java.time.Month;
import java.util.Scanner; 

    public class GetTime{ 

        public static void main(String args[]){ 
            //用两个数组存储闰年和非闰年的天数
            int a[]= {31,29,31,30,31,30,31,31,30,31,30,31};//闰年日期
            int b[]= {31,28,31,30,31,30,31,31,30,31,30,31};//非闰年日期
            //创建输入对象
            Scanner input = new Scanner(System.in);
            //依次输入年月日
            System.out.print("请输入年份:"); 
            int year = input.nextInt(); 
            System.out.println("请输入月份");
            int month=input.nextInt();
            System.out.println("请输入天数");
            int day=input.nextInt();
            //判断是闰年还是非闰年,后面会用到
            boolean flag = (year%4==0 && year%100!=0 || year%400==0); 
            //总天数SunDay初始值为0;
            int sumDay=0; 
          //for循环遍历(只遍历到今年的1月1日)
            for(int i=1; i<year; i++){ 

                if(i%4==0 && i%100!=0 || i%400==0){ 
                  //闰年算法
                    sumDay=sumDay+366; 

                }else{ 
                  //非闰年算法
                    sumDay=sumDay+365; 

            } 

            } 
            //判断今年是否为闰年
            if (flag==true) {
                //闰年算法
                for(int i=0;i<month;i++) {
                    sumDay=sumDay+a[i];
                    break;
                }
            }
            else {
                ///非闰年算法
                for(int i=0;i<month;i++) {
                    sumDay=sumDay+b[i];
                    break;
            }
                //因为我们计算到今年的一月一日,但是计算月份的时间会包括这一天,所以总天数要-1,同时还要加上输入的day;
            sumDay=sumDay+day-1;

        System.out.println("公元1年1月1日距离"+year+"年"+month+"月"+day+"日"+"共有"+sumDay+" 天"); 

        //如果公元1年1月1日是星期一 

        int week = (sumDay%7)+1; 

        System.out.println(week==7?(year+"年"+month+"月"+day+"日是星期天"):(year+"年"+month+"月"+day+"日"+"是星期"+week));  

        } 

    }

}

猜你喜欢

转载自blog.csdn.net/weixin_44050588/article/details/88786163