• 打印日历


    输入年份,月份,打印出该月日历表。

    :日历表从2000年起始。

    package repeat_job1;
    
    public class Calendar {
    	public Calendar(){}
    	private int []a={366,365,365,365};
    	public int number_Days(int m,int n)
    	{
    		int num1=((m-2000)/4)*1461;
    		int num2=0,sum_days=0;
    		for(int i=0;i<(m-2000)%4;i++)
    		{
    			num2+=a[i];
    		}
    		sum_days=num1+num2+number_Day(m,n);
    		return sum_days;
    	}
    	public int leapyear(int m)
    	{
    		if((m%4==0&&m%100!=0)||m%400==0)
    		{
    			return 29;
    		}
    		else 
    		{
    			return 28;
    		}
    	}
    	public int number_Day(int m,int n)
    	{
    		int r=0;
    		switch(n)
    		{
    		case 12:r+=30;
    		case 11:r+=31;
    		case 10:r+=30;
    		case 9:r+=31;
    		case 8:r+=31;
    		case 7:r+=30;
    		case 6:r+=31;
    		case 5:r+=30;
    		case 4:r+=31;
    		case 3:r+=leapyear(m);
    		case 2:r+=31;
    		case 1:r+=0;
    		}
    		return r;
    	}
    	public void print(int m,int n)
    	{
    		System.out.println("星期日"+"	"+"星期一"+"	"+"星期二"+"	"+"星期三"+"	"+"星期四"+"	"+"星期五"+"	"+"星期六");
    		int mod,day;
    		mod=(1+number_Days(m,n))%7;//为什么加1?
    		switch(mod)
    		{
    		case 2:System.out.print("");break;
    		case 3:System.out.print("");break;
    		case 4:System.out.print("	");break;
    		case 5:System.out.print("		");break;
    		case 6:System.out.print("			");break;
    		case 0:System.out.print("				");break;
    		case 1:System.out.print("					");break;
    		}
    		if(n==1||n==3||n==5||n==7||n==8||n==10||n==12)
    		{
    			
    			for(day=1;day<=31;day++)
    			{
    				mod=(number_Days(m,n)+day)%7;
    				switch(mod)
    				{
    				case 2:System.out.print(" "+day);break;
    				case 3:System.out.print("	"+day);break;
    				case 4:System.out.print("	"+day);break;
    				case 5:System.out.print("	"+day);break;
    				case 6:System.out.print("	"+day);break;
    				case 0:System.out.print("	"+day);break;
    				case 1:System.out.println("	"+day);break;
    		
    				}
    			}
    		}
    		else if(n==2)
    		{
    			for(day=1;day<=leapyear(m);day++)
    			{
    					mod=(number_Days(m,n)+day)%7;
    					switch(mod)
    					{
    					case 2:System.out.print(" "+day);break;
    					case 3:System.out.print("	"+day);break;
    					case 4:System.out.print("	"+day);break;
    					case 5:System.out.print("	"+day);break;
    					case 6:System.out.print("	"+day);break;
    					case 0:System.out.print("	"+day);break;
    					case 1:System.out.println("	"+day);break;
    					}
    				}
    			}
    			else{
    				for(day=1;day<=30;day++)
    				{	
    					mod=(number_Days(m,n)+day)%7;
    					switch(mod)
    					{
    					case 2:System.out.print(" "+day);break;
    					case 3:System.out.print("	"+day);break;
    					case 4:System.out.print("	"+day);break;
    					case 5:System.out.print("	"+day);break;
    					case 6:System.out.print("	"+day);break;
    					case 0:System.out.print("	"+day);break;
    					case 1:System.out.println("	"+day);break;
    					}
    				}
    			}
    	}
    }
    

      

    import repeat_job1.Calendar;
    import java.util.Scanner;
    public class Test2 {
        public static void main(String[] args)
        {
            Calendar ca=new Calendar();
            Scanner reader=new Scanner(System.in);
            System.out.println("请输入年份:");
            int m=reader.nextInt();
            System.out.println("请输入月份:");
            int n=reader.nextInt();
            reader.close();
            ca.print(m,n);
            
        }
    
    }
  • 相关阅读:
    [转] SQL Server中的行列转换问题
    【原】Sql中时间处理函数 DateAdd & DateDiff
    [转] 为GridView删除添加确认对话框
    【转】jQuery入门指南教程
    [原] Excel(VBA)中数据的非科学记数法显示
    【原】IP地址存储问题
    【转】 asp.net数据导出EXCEL
    【原】有线通设定
    【原】 VS2005/VWD2005调试错误“无法附加,绑定句柄无效”的解决
    [原] Excel中计算2个日期间的时间间隔
  • 原文地址:https://www.cnblogs.com/zyh2017/p/4996038.html
Copyright © 2020-2023  润新知