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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© ylw787442926 中级黑马   /  2016-6-3 14:31  /  637 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

import java.util.Scanner;

//此为总结项目,用于完成万年历;
public class Test_old_4 {
/*

* */
        public static boolean Run(int year){        // 此函数为判断年份是闰年还是平年
                if((year%4==0&&year%100!=0)||(year%400==0)){
                        return true;
                }
                else{
                        return false;
                }
        }
        /*
         * 建立一个函数,完成星期的构建;这里以1900年1月1日为星期一
         * */
        public static int Weeks(int year,int month){
                int day=0;
                int week=0;
                for(int i=1900;i<year;i++){
                        if(Run(i)){
                                day+=366;
                        }
                        else{
                                day+=365;
                        }
                }
                for(int j=1;j<month;j++){
                        day+=MonthDay(year,j);
                //week=(day+1)%7;
                               
                }
                //System.out.println("此月第一天距离1900-1-1:"+day+"天");
                return day;
        }
       
        public static int MonthDay(int year,int month){
                int day=30;
                switch (month){
                        case 1:
                        case 3:
                        case 5:
                        case 7:
                        case 8:
                        case 10:
                        case 12:
                                day=31;
                                break;
                        case 2:
                                if(Run(year)){
                                        day=29;
                                }
                                else{
                                        day=28;
                                }
               
                }
                return day;
        }
        public static void main(String[] args) {
                int year,month;//year 和 month分别表示年月
                int day;//表示这个月的 第一天是星期几
                int days;//days表示输入的时间距离1900-1-1多少天;
                int icount=0;//计数器换行
                int monthDay=0;//此月份有几天       
                Scanner input = new Scanner(System.in);
                System.out.println("******万年历*****");
                System.out.println("输入你要查询的年");
                year = input.nextInt();
                System.out.println("输入你要查询的月");
                month = input.nextInt();
                monthDay=(MonthDay(year,month));
                /*if(Run(year)){
                        System.out.println(year+"是闰年");
                }
                else{
                        System.out.println(year+"是平年");
                }*/
                //System.out.println(year+"年"+month+"月一共有"+MonthDay(year,month)+"天");
                //System.out.println(year+"年"+month+"月的第一天是星期"+(Weeks(year,month)));
                days = Weeks(year,month);
                days++;
                day = days%7;
                //System.out.println(year+"-"+month+"是星期"+day);
                       
                System.out.print("星期日\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六"+"\n");
                for(int i=0;i<day;i++){
                        System.out.print("\t");
                        icount++;
                }
                for(int i=1;i<=monthDay;i++){
                        System.out.print(i+"\t");
                        icount++;
                        if(icount%7==0){
                                System.out.println();
                        }
                }
        }

}

2 个回复

倒序浏览
56666677777
回复 使用道具 举报
怎么做的啊,能教教我吗?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马