public class calendarDemo {
public static void main(String[] args) {
Calendars(2015,12);
}
// 判断一个年份是闰年还是平年
public static boolean isRun(int year) {
if ((year%4==0&&year%100!=0) || year%400==0)
return true;
return false;
}
// 判断一个月份是大月还是小月,2月单独判断并返回这个月份的天数。
public static int getMonthDays(int year, int month) {
int days=31;
switch (month) {
case 4:
case 6:
case 9:
case 11:
days = 30;
break;
case 2:
if (isRun(year))
days = 29;
else
days = 28;
break;
}
return days;
}
// 判断一个年份月份距离1900年的1月1日是多少天
public static int getAllDays(int year, int month) {
int allyeardays = 0;
for (int x = 1900; x < year; x++) {
if (isRun(x))
allyeardays += 366;
else
allyeardays += 365;
}
for (int y = 1; y < month; y++) {
allyeardays += getMonthDays(year, y);
}
return allyeardays;
}
// 判断一个月份的第一天是周几?
public static int getWeek(int year, int month) {
int day = getAllDays(year, month)+1; //这里+1是求出本月的一日距离1900年1月1日的天数
return day % 7;
}
// 输出日历;按照 星期日,星期一,星期二,星期三,星期四,星期五,星期六的格式
public static void Calendars(int year, int month) {
int week = getWeek(year, month);
System.out.println("星期日\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六");
for(int x= 0;x<week;x++)
{
System.out.print("\t");
}
for (int x = 1; x <= getMonthDays(year, month); x++) {
System.out.print(x + "\t");
week++;
if (week % 7 == 0)
System.out.println();
}
}
}
JAVA自学日记--万年历的小练习
最新推荐文章于 2024-05-06 23:11:12 发布