小小万年历

打印万年历(输入年份,月份,输出该月的日历,已知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-generated method stub

		paly();
	}

	private static void paly() {
		// TODO Auto-generated method stub

		Scanner in=new Scanner(System.in);

		while(true)
		{
			System.out.println("1...判断闰年");
			System.out.println("2...判断某年某月有多少天");
			System.out.println("3...某年某月前距离1900年1月1日的总天数");
			System.out.println("4...输出某年某月日历");
			System.out.println("5...退出");
			int m;
			m=in.nextInt();
			switch(m)
			{
			case 1:
				int text;
				System.out.println("请输入年份...");
				int year=in.nextInt();
				text=testyear(year);
				if(text==1)
					System.out.println("yes");
				else
					System.out.println("no");
				break;
			case 2:
				int text1;
				System.out.println("请输入年...");
				int year1=in.nextInt();
				System.out.println("请输入月...");
				int month1=in.nextInt();
				text1=testmonth(year1,month1);
				System.out.println(text1);
				break;
			case 3:
				int text2;
				System.out.println("请输入年...");
				int year2=in.nextInt();
				System.out.println("请输入月...");
				int month2=in.nextInt();
				text2=calculate(year2,month2-1);
				System.out.println(text2);
				break;
			case 4:

				System.out.println("请输入年...");
				int year3=in.nextInt();
				System.out.println("请输入月...");
				int month3=in.nextInt();
				desplay(year3,month3);
				break;
			case 5:
				System.exit(0);
				break;

			}
		}

	}

	private static void desplay(int year,int month) {//万年历界面
		// TODO Auto-generated method stub
		int i,j,k=1;
		int day=calculate(year,month-1);
		int count,monday;
		count=testmonth(year,month);
		monday=day%7+1;
		System.out.println("一	二	三	四	五	六	日");
		for(i=1;i<=monday-1;i++)System.out.print(" 	");
		for(i=0;i<7;i++)
		{
			for(j=0;j<7;j++)

			{
				System.out.print(k+"	");

				if(8-monday==k||k==count)
				{k++;
					break;
				}
				k++;
			}
			System.out.println("");
			if(k>=count) break;

		}
	}

	private static int calculate(int year,int month) {//计算距离1900.01.01天数
		int i,j,count=0;
		for(i=1900;i<=year;i++)
		{
			for(j=1;j<=12;j++)
			{
				count=count+testmonth(i,j);
				if(i==year&&j==month)
				break;

			}
		}
		return count;

	}

	private static int testmonth(int year,int month) {//计算当月天数
		// TODO Auto-generated method stub
		int x,y=0;
		x=testyear(year);
		switch(month)
		{
		case 1:
		case 3:
		case 5:
		case 7:
		case 8:
		case 10:
		case 12:
		 y=31;
		break;

		case 2:
				if(x==1)
					y=29;
				else
					y=28;
			break;

		case 4:
		case 6:
		case 9:
		case 11:
		y=30;
		break;
		}
		return y;

	}

		public static int testyear(int m) {//判断闰年
			// TODO Auto-generated method stub
			if(m%4==0&&m%100!=0||m%400==0)
				return 1;
			else
				return 0;

		}

}

  

时间: 2024-10-02 07:06:00

小小万年历的相关文章

小小记事本

页面很简单,是这个样子的.在点击tableviewCell 的时候, 右面的view可以自动弹出,在该view中输入以及显示输出,将该view拖回到右边时,刷新tableview.在重新打开程序的时候内容也仍然在.下面说一下实现过程吧 一.判断进入页面 即判断是否存在plist文件以及版本号是否相同,在AppDelegate.m中写入 -(void)addFirstPage { UIStoryboard *storyboard = [UIStoryboard storyboardWithName

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

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

HDU 4517 小小明系列故事---游戏的烦恼 (模拟题)

问题描述 : 小小明最近在玩一款游戏,它由n*m大小的矩阵构成,矩阵上会随机产生一些黑色的点,这些点它们可能会连在一起也可能会分开,这些点的个数没有限制,但是每个1*1方格中最多只可能有一个黑点产生.游戏要求玩家以最短的时间用x*y的小矩阵覆盖这个大矩阵,覆盖的要求有以下2点: 1.  x*y大小的小矩阵内必须有x*y个黑点. 2. 多个小矩阵可以重叠,但是每个小矩阵放置的位置必须是独一无二的,即不同的小矩阵内的黑点不能完全相同.例如1*2的矩阵可以横着放,也可以竖着放,这两种方法是不同的,即使

结对项目 万年历

一.题目简介 所选项目名称:万年历. 项目需求描述,主要指应实现的主要功能. 实现了日历的查询,方便使用.界面主要是由查询输入部分和结果显示部分两部分组成. 查询输入:①一个文本域,用于输入年份. ②一个选择下拉列表框:用于选择月份. ③ 一个选择按钮:用来选择查询事件. 四.代码地址  https://github.com/huangjingyi/wannianli/blob/master/wannianli   五.结对分工过程 首先应该是结对编程可提高效率,结对编程的时候,两个人可以分开做

万年历算法的实现(C语言--gcc编译)

/** cal.c * * 现行的格里历是从儒略历演化而来的.儒略历每4年一个润年,润年366天,平年365天.* 如果从公元1年算的话,那么凡是能够被4整除的都是润年.从天文角度看,儒略历这种 * 历法是有误差的,到16世纪误差已经达到了10天.1582年,罗马教皇对儒略历进行了 * 一次校定,该年的10-5到10-14这10天被抹掉,并规定凡不能被400整除的世纪年不再 * 算为润年,校定之后的儒略历即为现行的格里历. * * 但是英国直到1752年才开始使用格里历,此时时间误差已经达到了1

小小小女神啊~~~

丹麦皇家芭蕾舞团小小小女神~~ 路人甲:"看到丹麦女神之后,我再也不敢随便叫别人是女神." 路人乙:"人世间原来还有长成这样的女孩子!"" 路人丙:"瞬间觉得自己见识少了."  小小小女神啊~~~,布布扣,bubuko.com

关于游戏[小小枪战:反恐精英]的欺骗作假行为

游戏名称 :小小枪战:反恐精英/Little Gunfight:Counter-terror 消费者不是傻瓜! 游戏里面的联网对战功能就是玩家与电脑对战.我只能说,这个游戏公司的AI做的不错. 证据1:源代码 a.a.a.java 里面有一个机器人的玩家名称列表,什么 "极品黑木耳" "爆头王子" "孤与谁共" ...(玩过的人都懂) 证据2:源代码 a.a.b.g.java 里面有一个敏感词列表,就是玩家起名字的时候不允许有敏感词.什么 &qu

小小六的前端学习心得

打算写这篇文章已经好久了,但是文采不行,不知道如何下笔,今天终于鼓起勇气用我拙劣的作文水平来讲述一下这段时间我学习前端开发的心得. 先从我的专业说起.我本人是学计算机的.全名是叫计算机科学与技术(软件方向),学校虽然是一个211学校,学习成绩也还行,但是对于编程这一块,真的是很弱很弱.所以我对计算机编程真正的学习是从实习这段时间开始的.说到这里,我必须得感谢带我进入前端的学长.因为他我才能在今天坐在这里写这篇学习心得. 所以,首先最好是有一个愿意耐心的指导你学习的人,也就是一个好的师傅.他能根据

STM32之输入捕获以及小小应用(库)

五一之际,先祝大家五一快乐.其实快乐很简单,工作的人有假放,学习的人也有假放,像我,有假放才有更多的时间学自己想学的东西.51假期学51,可惜没有32假期呀.好了..言归正传,大家听过吸星大法吧..在这里.智商和情商比我高的人估计又知道我要说什么了..没错了..今天我们来了解"葵花宝典"第STM32篇之输入捕获,也就是上文所讲的"吸星大法", 那输入捕获可以用来干嘛呢??这个问题问的好,输入捕获可以用来测量脉冲宽度或者测量频率,假如要捕获一个脉冲的高电平脉宽,我们要