打印万年历

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

   }

   }

  

时间: 2025-01-14 06:08:36

打印万年历的相关文章

java实验之打印万年历

打印万年历(输入年份,月份,输出该月的日历,已知1900年1月1日是星期一),要求: (1)编写一个方法判断闰年: (2)编写一个方法判断某年某月有多少天: (3)编写一个方法计算某年某月前距离1900年1月1日的总天数:(4)编写一个输出某年某月日历的方法: (5)编写一个测试方法. package calendar;import java.util.Scanner;public class calendar { public static void main(String args[]){

算法,java代码实现打印万年历

万年历 以1900年1月1号星期一为时间原点 星期日 第一天 星期一 第二天 星期二 第三天 星期三 第四天 星期四 第五天 星期五 第六天 星期六 第七天 1.计算出当前日期距离原点的天数(例:2016/9/18) 2015到1900之间有多少个瑞年和平年-->count1 2016年一月到八月的总天数-->count2 本月的一号 count = count1+count2+1 2.计算出本月的一号是一周的第几天 k = count%7;(打印一号前面有多少空格) 3.计算出该月有多少天

Java实验项目二打印万年历

package _____;import java.util.Scanner;public class wnl//万年历主类{    public static void main(String[] args)    {                menu();        Scanner sc=new Scanner(System.in);        int menu=sc.nextInt();        if(menu==1)        {            Syste

语句练习4(打印万年历)

计算任何一天是星期几的几种算法: 一:常用公式 W = [Y-1] + [(Y-1)/4] - [(Y-1)/100] + [(Y-1)/400] + D Y是年份数,D是这一天在这一年中的累积天数,也就是这一天在这一年中是第几天. 二:蔡勒(Zeller)公式    w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1 公式中的符号含义如下,w:星期:c:世纪:y:年(两位数): m:月(m大于等于3,小于等于14,即在蔡勒公式中,某年的1.2月要看作上一年的13.14月来计

python打印万年历

1.输入年份,输入月份 2.格式化输出本月的日历 3.思路输入年,月,打印对应年月的日历. 3.1,首先1970年是Unix系统诞生的时间,1970年成为Unix的元年,1970年1月1号是星期四,现在大多的手机的日历功能只能显示到1970年1月1日这一天; 3.2,要想打印某年某月的日历,首先应该计算出这个月1号是星期几? 解决1号是星期几? 3.2.1: 先计算出年天数,即截至这一年1月1号的天数,用for循环,从1970年开始,闰年 + 366,平年 + 365; 3.2.2: 计算出月天

Java基础之打印万年历

      今天刚开的博客,第一篇博文,一篇关于Java基础的内容,水平有限,多多见谅,希望和大家在学习编程的路上共同进步. 问题:输入年,月,打印对应年月的日历.   示例: ------------------------------------------------------------------------------- ---------------------------------------------------------------------------------

小小万年历

打印万年历(输入年份,月份,输出该月的日历,已知1900年1月1日是星期一),要求: (1)编写一个方法判断闰年: (2)编写一个方法判断某年某月有多少天: (3)编写一个方法计算某年某月前距离1900年1月1日的总天数:(4)编写一个输出某年某月日历的方法: (5)编写一个测试方法. import java.util.*; public class yearlist { public static void main(String[] args) { // TODO Auto-generate

Java实验项目二——打印某年某月日历

Program:打印万年历(输入年份,月份,输出该月的日历,已知1900年1月1日是星期一), 要 求: (1)编写一个方法判断闰年: (2)编写一个方法判断某年某月有多少天: (3)编写一个方法计算某年某月前距离1900年1月1日的总天数:(4)编写一个输出某年某月日历的方法: (5)编写一个测试方法. Description:该项目由多个类实现,最后类为main方法的调用.代码如下: 1 /* 2 *Description:定义工具类 3 * 4 * */ 5 6 package tools

万年历打印

题目描述 根据用户输入的年份,打印当年的年历. 输入要求 输入多个表示年份的整数,以0结束. 输出要求 打印每个年份的年历(0除外). 假如输入 2013 2012 0 应当输出 2013 Calander 一月 星期一 星期二 星期三 星期四 星期五 星期六 星期日 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 二月 星期一 星期二 星期三 星期四 星期五 星期六 星期日