打印万年历

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了打印万年历相关的知识,希望对你有一定的参考价值。

import java.util.Scanner;

public class Year {
	public static void main(String[] args){
		int a,o,x,oo,oa,oc,os,ab,ooq,oaq,v;
		do{	System.out.println("\n***********************");
			System.out.println("1.判断某年是否是闰年\n2.判断某年某月有多少天\n3.计算某年某月某日距离1990年1月1日的总天数\n4.输出某年某月的日历\n0.退出");
			System.out.println("请选择您的需求\n");
		
			Scanner sas=new Scanner(System.in);   //从键盘上输入一个字符
			os=sas.nextInt();
		
			switch(os){
				case 1:System.out.println("请输入年份");
				   	   Scanner scb=new Scanner(System.in);   //从键盘上输入一个字符
				   	   ab=scb.nextInt();
				   	   if(judgeYear(ab)==1)
				   		System.out.println("该年是闰年");
				   	   else
				   		System.out.println("该年不是闰年");
				   	   break;
				case 2:
					   System.out.println("请输入年份");
					   Scanner sc=new Scanner(System.in);   //从键盘上输入一个字符
					   a=sc.nextInt();
					
					   System.out.println("请输入月份");
					   Scanner sa=new Scanner(System.in);   //从键盘上输入一个字符
					   o=sa.nextInt();
					   
					   x=days(a,o);
					   System.out.println(a+"年"+o+"月有"+x+"天");
					   break;
				case 3:
					   System.out.println("请输入年份");
				       Scanner saa=new Scanner(System.in);  
				       oo=saa.nextInt();
				
				       System.out.println("请输入月份");
				       Scanner sam=new Scanner(System.in);   
				       oa=sam.nextInt();
				
				       System.out.println("请输入日份");
				       Scanner san=new Scanner(System.in);   //从键盘上输入一个字符
				       oc=san.nextInt();
				       
				       
				       v=dayfrom1990(oo,oa,oc);
				       System.out.println(v);
				       break;
				case 4:
					   System.out.println("请输入年份");
				       Scanner saaa=new Scanner(System.in);  
				       ooq=saaa.nextInt();
				
				       System.out.println("请输入月份");
				       Scanner samq=new Scanner(System.in);   
				       oaq=samq.nextInt();
				       
				       print(ooq,oaq);
				       break;
				case 0:break;}
			}while(os!=0);
			
			
		}
		
			
		
		
		
		
	
	public static int judgeYear(int b){    //判断是否是闰年
		int c;
		if(b%100==0){
			c=b%400;
		}
		else 
			c=b%4;
		if(c==0){
			
			return 1;}
		else{
			
			return 0;}
		
	}
	
	
	public static int days(int m,int n){     //判断某年某月有几天
		int p;
		p=judgeYear(m);
		if(n==1|n==3|n==5|n==7|n==8|n==10|n==12)
			return 31;
		else if(n==4|n==6|n==9|n==10)
			return 30;
		else {
			if(p==1)
			return 29;
			else
			return 28;
		}
			
	}	
	
	
	
   public static int dayfrom1990(int q,int j,int u){
	   
          int r=0;
	      if(q==1990){
	    	 for(int i=1; i<= j-1;i++)
			 r+=days(1990,i);
	    	 r+=u;
	    	 return r;
	      }
	      else{
	    	  for(int i=1990; i<= q-1;i++){
	    		  if(judgeYear(i)==1)
	    			  r+=361;
	    		  else
	    			  r+=360;
	    	  }
	    	  for(int ii=1; ii<= j-1;ii++)
	    		  r+=days(q,ii); 
	    	  r+=u;
		      return r;
	      }
	      
	   
   }
   
	   
			
	      public static void print(int as,int bs){
	    	  int xq,z=0;
	    	  System.out.println("-----------"+as+"年"+bs+"月日历表------------");
	    	  xq=dayfrom1990(as,bs,1)%7+1; //计算出该年该月第一天是星期几
	    	  System.out.println("一\t二\t三\t四\t五\t六\t日");
	    	  
	    	for(int k=1;k<xq;k++){
	    	  System.out.print("\t" );
	    	  		z++;
	      }
	    	  
	    	  
	    	  for(int i=1;i<=days(as,bs);i++){
	    		  System.out.print(i+"\t");
	    		  z++;
	    		  if(z%7==0){
	    			 System.out.print("\n");}
	    	  }
   
   }

   }

  

以上是关于打印万年历的主要内容,如果未能解决你的问题,请参考以下文章

python打印万年历

java实验之打印万年历

打印万年历

Python实战:打印万年历

Java实验项目二打印万年历

万年历公历农历查询