我是靠谱客的博主 体贴眼神,最近开发中收集的这篇文章主要介绍JAVA实现动态日历的生成 - 带注释,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

JAVA实现动态日历的生成

只要在主函数main中创建DateTable对象,使用display方法即可输出
如:

//定义一个日历对象dt
		DateTable dt= new DateTable(2019, 6);
		//dt执行显示日历的方法
		dt.display();

结果图:
在这里插入图片描述
DataTable类,源码:

/**
 * JAVA实现动态日历生成
 * @author garen
 * */
package DateTable;

public class DateTable {
	/**成员变量*/
	/**年*/
	private int year;
	/**月*/
	private int month;

	/**构造方法*/
	DateTable(int y, int m) {
		year = y;
		month = m;
	}
	
	/**leapyear判断闰年方法*/
	public boolean leapyear(int y) {
		if (y % 400 == 0 || ((y % 4 == 0) && (y % 100 != 0))) {
			return true;
		}
		return false;
	}
	/**计算某个月有多少日*/
	int getdayofmonth(int month) {
			/**判断month*/
			switch (month) {
			case 1:
			case 3:
			case 5:
			case 7:
			case 8:
			case 10:
			case 12:
				return 31;
				/**二月需要判断是否为闰年,调用leapyear闰年方法*/
			case 2:
				if(leapyear(this.year))
					return 29;
				else
					return 28;
			case 4:
			case 6:
			case 9:
			case 11:
				return 30;
			default:
				return 0;
			}
	}
	
		/**计算1900至今有多少天,先算年,然后把没满今年的月份天数继续加上*/
		public int getsumto1900() {
			/**定义一个days整数来累加求和*/
			int days = 0;
			/**有多少年就循环多少天*/
			for (int i = 1900; i < this.year; i++) {
				/**判断闰年,如果是闰年就加366天,如果不是就加365天*/
				if (leapyear(i)) {
					days += 366;
				} else {
					days += 365;
				}
			}
			/**把今年的前几个月天数循环累加起来*/
			for (int i = 1; i < month; i++) {
				days += getdayofmonth(i);
			}
			/**返回1900至今有多少天*/
			return days;
		}
		
	/**输出日历*/
	public void display() {
		/**计数器,来控制换行*/		
		int count=0;
		/**定义days来存储本月有多少天*/
		int days=getdayofmonth(this.month);
		/**根据1900至今来计算第一天前面的空格有多少个,存到space里面*/
		int spaces=getsumto1900()%7;
		/**输出头部菜单*/
		System.out.println("-----------"+this.year+"年-----------"+this.month+"月-----------");
		System.out.println("一t二t三t四t五t六t日");
		/**输出前面的空格*/
		for(int i=0;i<spaces;i++){
			System.out.print("t");
			/**输出一次count++,逢7换行*/
			count++;
			if(count%7==0){
				System.out.println();
			}
		}
		/**接着循环输出本月日期*/
		for(int i=0;i<days;i++)
		{
			System.out.print((i+1)+"t");
			/**输出一次count++,逢7换行*/
			if(count%7==0){
				System.out.println();
			}
			count++;
		}
	}
}

最后

以上就是体贴眼神为你收集整理的JAVA实现动态日历的生成 - 带注释的全部内容,希望文章能够帮你解决JAVA实现动态日历的生成 - 带注释所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(58)

评论列表共有 0 条评论

立即
投稿
返回
顶部