Java打印万年历

①计算1900年1月1日之前的总天数

②计算输入月份的天数(比如输入5,应计算1-4月的总天数)

③星期几计算:1+总天数%7 \t

④每行输入7个

完成万年历完整代码如下:

import java.util.Scanner;
public class Calendars{
    public static void main(String []argas)
    {
        Scanner input=new Scanner(System.in);
        int year;//年份
        int month;//月份
        int days=0;//天
        boolean isRn;//用于判断是否是闰年,true为闰年,false为平年
        int totalDays=0;
        System.out.println("******************使用万年历******************");
        System.out.println("请输入年份");
        year=input.nextInt();
        System.out.println("请输入月份");
        month=input.nextInt();
        //判断是否是闰年
        if((year%400==0)||(year%4==0&&year%100!=0))
        {
            isRn=true;
            System.out.println(year+"年是闰年");
        }
        else
        {
            isRn=false;
            System.out.println(year+"年是平年");
        }
        //计算年的总天数
        for(int i=1900;iif((i%400==0)||(i%4==0&&i%100!=0))
            {
                totalDays+=366;
            }
            else
            {
                totalDays+=365;
            }
        }
        //计算输入月份之前的天数之和
        for(int i=1;i<=month;i++)
        {
            switch(i)
            {
                case 1:
                case 3:
                case 5:
                case 7:
                case 8:
                case 10:
                case 12:
                    days=31;
                    break;
                case 2:
                    if(isRn)
                    {
                        days=29;
                    }
                    else
                    {
                        days=28;
                    }    
                    break;
                case 4:
                case 6:
                case 9:
                case 11:
                    days=30;
                    break;
                default:
                    System.out.print("输入的月份有误");
                    break;
            }
            //输入月的天数保存到days中,但不累加
            if(i!=month)
            {
                totalDays+=days;
            }
        }

        //求出星期几,就是前面\t的个数
        int beforeDays;
        beforeDays=1+totalDays%7;
        if(beforeDays==7)
        {
            beforeDays=0;//代表星期天,0个\t
        }
        System.out.println("星期天\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六");
        //先打印\t
        for(int i=0;iout.print("\t");
        }

        for(int i=1;i<=days;i++)
        {
            System.out.print(i+"\t");
            //满7个换行
            if((i+beforeDays)%7==0)
            {
                System.out.println();
            }
        }

        //System.out.print(year+"年"+month+"月共有"+days+"天");

    }
}

(来自博客园)

你可能感兴趣的:(java)