网站首页 网站地图
网站首页 > 娱乐人生 > 猿编程发的日历怎么做

猿编程发的日历怎么做

时间:2026-03-20 09:50:00

猿编程发日历的方法可以分为以下几个步骤:

输入年份和月份

通过控制台或用户界面接收用户输入的年份和月份。

判断闰年

判断输入的年份是否是闰年,以便确定二月份的天数。闰年的判断规则是:能被4整除但不能被100整除,或者能被400整除。

计算月份的天数

根据输入的年份和月份,计算该月的天数。这可以通过一个数组来实现,数组中的每个元素对应一个月的天数,考虑到闰年二月有29天。

计算第一天是星期几

计算输入月份的第一天是星期几。这可以通过计算输入年份距离1900年1月1日的天数,再加上输入月份之前的天数,然后对7取余来实现。余数即为第一天是星期几(余数为0表示星期天)。

输出日历

按照格式输出该月的日历。通常日历的输出格式为星期几、日期、月份和年份。

```java

import java.util.Scanner;

public class CalendarGenerator {

public static void main(String[] args) {

Scanner scanner = new Scanner(System.in);

System.out.print("输入年份: ");

int year = scanner.nextInt();

System.out.print("输入月份: ");

int month = scanner.nextInt();

// 判断闰年

boolean isLeapYear = (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);

int[] daysInMonth = {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

if (isLeapYear) {

daysInMonth = 29;

}

// 计算第一天是星期几

int daysSince1900 = 0;

for (int y = 1900; y < year; y++) {

daysSince1900 += isLeapYear(y) ? 366 : 365;

}

for (int m = 1; m < month; m++) {

daysSince1900 += daysInMonth[m];

}

int firstDayOfWeek = (daysSince1900 + 1) % 7;

// 输出日历

System.out.println("日 一 二 三 四 五 六");

for (int i = 0; i < firstDayOfWeek; i++) {

System.out.print("");

}

for (int day = 1; day <= daysInMonth[month]; day++) {

System.out.printf("%4d", day);

if ((day + firstDayOfWeek) % 7 == 0) {

System.out.println();

}

}

}

public static boolean isLeapYear(int year) {

return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);

}

}

```

通过以上步骤和代码,你可以实现一个简单的日历生成器。根据具体需求,你可以进一步扩展和优化这个程序,例如添加日期选择、事件添加和编辑、提醒功能等。