概述
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实现动态日历的生成 - 带注释所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复