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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始


/**
* 需求:编写一个万年历
* 分析:其实记住小学老师教的口诀就可以了
*      一三五七八十腊,四六九冬三十天,
*      平年二月二十八,闰年二月二十九,
*      平年三百六十五,闰年三百六十六。
* 注解:腊月也就是十二月,冬月也就是十一月。
* @author Administrator
*
*/
public class Test4 {
public static void main(String[] args) {
        Scanner in=new Scanner(System.in);  
        System.out.println("请输入年份:");  
        int nian=in.nextInt();  
        System.out.println("请输入月份");
        int yue=in.nextInt();  
        int sum=0;  
        //计算从1900年到输入的年份有多少天
        for(int year=1900;year<=(nian-1);year++){
                //根据输入的年份判断是否是闰年或者是平年
                if(year%4==0&&year%100!=0||year%400==0){  
                        sum=sum+366;   //闰年366天
                        }else{
                                sum=sum+365;    //平年365天
                                }   
                }
        //计算从一月到输入的月份有多少天
        for(int month=1;month<=(yue-1);month++){
                if(month==2){
                        if(nian%4==0&&nian%100!=0||nian%400==0){  
                                sum+=29;   //闰年二月29
                                }else {   
                                        sum+=28;    //平年二月28
                                        }   
                        }else {   
                                //4  6  9  冬(11)三十天
                                if(month==4||month==6||month==9||month==11){  
                                        sum+=30;   
                                        }else{     
                                                sum+=31;  //1 3 5 7 9 10 腊(12)三十一天
                                                }   
                                }      
                }   
                        sum=sum+1; //从每月的1号开始排列   
                int weekday=sum%7;   //一个星期七天
                        System.out.println("日\t一\t二\t三\t四\t五\t六");  
                for(int i=1;i<=weekday;i++){
                        System.out.print("\t");
                }  
                for(int i=1;i<=30;i++){  
                        if(sum%7==6){   //每到周六换行显示
                        System.out.print(i+"\n");
                        }else {  
                                System.out.print(i+"\t");
                        }
                sum++;
                }
}
}

0 个回复

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