ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

万年历

2019-09-26 13:01:32  阅读:269  来源: 互联网

标签:totaldays 万年历 int month year Calendar public


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

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();
    }

}

 

标签:totaldays,万年历,int,month,year,Calendar,public
来源: https://www.cnblogs.com/cstdio1/p/11590233.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有