万年历

可以获取某年的指定月份或者是全年的日历

package rili;
//1800.1.1周三
public class Calendar {
    int year,month;
    
    public  void Monthtop(){
    System.out.println("Sun\tMon\tTues\tWed\tThur\tFri\tsat");    
    }
    public Calendar(int y,int m){
        year=y;
        month=m;
    }
    public Calendar(int y){
        year=y;
    }
    public int FirstDayofMonth(int m){
        int totaldays=0;
        for(int i=1800;i<year;i++){
            if(isLeapYear(i)){
                totaldays+=366;
            }else{
                totaldays+=365;
            }
        }
        for(int i=1;i<m;i++){
            totaldays+=DaysofMonth(year,i);
        }totaldays+=3;
        return (totaldays%7);
        
    }
    
    public void printLine(){
    System.out.println();    
    System.out.println("____________________________________________________");
    }
    
    public void Allyear(){
        for(int i=1;i<=12;i++){
            printMonth(i);
        }
        
    }
    public void printMonth(int m){//打印指定月份
        Monthtop();    
        int day=1,cnt=0;
        for(int i=1;i<=FirstDayofMonth(m);i++){//打印第一行的空格数
            System.out.print("\t");
        }
        for(int i=1;i<=7-FirstDayofMonth(m);i++){//打印第一行显示的数字
            System.out.print(day+"\t");
            day++;
        }System.out.println();
        while(day<=DaysofMonth(year,m)){
                System.out.print(day+"\t");
                day++;cnt++;
                if(cnt==7){
                    System.out.println();
                    cnt=0;
                }
                
        }printLine();
    }
    public boolean isLeapYear(int y){
        if(y%400==0||(y%4==0&&y%100!=0)){
            return true;
        }return false;
    }
    public int DaysofMonth(int y,int m){
        int []days=new int [13];
        days[0]=0;        days[1]=31;
        days[3]=31;        days[5]=31;
        days[7]=31;        days[8]=31;
        days[10]=31;    days[12]=31;
        days[2]=28;        days[4]=30;
        days[6]=30;        days[9]=30;
        days[11]=30;
        if(isLeapYear(y)){
            days[2]=29;
        }
        return days[m];
    }
    
    
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Calendar c =new Calendar(2019,10);
        c.Allyear();
    }

}

 

转载于:https://www.cnblogs.com/cstdio1/p/11590233.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值