怎么写日历程序

时间:2025-01-17 18:53:10 游戏攻略

编写日历程序可以根据不同的编程语言和需求选择不同的方法。以下是几种常见编程语言的日历程序编写方法:

Python

Python提供了`datetime`和`calendar`模块,可以方便地生成日历。以下是一个简单的示例代码:

```python

import calendar

def print_calendar(year, month):

获取该月第一天是星期几

first_day = datetime.date(year, month, 1).weekday()

days_in_month = calendar.monthrange(year, month)

打印月份和年份

month_name = calendar.month_name[month]

print(f"{month_name} {year}")

打印日历

print("日一二三四五六")

print(" " * first_day, end="")

for day in range(1, days_in_month + 1):

print(f"{day:2d} ", end="")

print()

示例调用

print_calendar(2024, 12)

```

C语言

在C语言中,可以通过数组和循环来实现一个简单的日历程序。以下是一个示例代码:

```c

include

include

void print_calendar(int year, int month) {

int first_day_of_week, days_in_month;

char months = {

"Jan", "Feb", "Mar", "Apr", "May", "Jun",

"Jul", "Aug", "Sep", "Oct", "Nov", "Dec"

};

first_day_of_week = (year - 1900) % 7 + 1;

days_in_month = calendar.get_days_in_month(year, month);

printf("%s %d\n", months[month - 1], year);

printf("Su Mo Tu We Th Fr Sa\n");

printf(" " * first_day_of_week, end="");

for (int i = 1; i <= days_in_month; i++) {

printf("%2d ", i);

if ((i + first_day_of_week) % 7 == 0) {

printf("\n");

}

}

}

int main() {

int year, month;

printf("请输入年份: ");

scanf("%d", &year);

printf("请输入月份: ");

scanf("%d", &month);

print_calendar(year, month);

return 0;

}

```

Java

在Java中,可以使用`java.util.Calendar`类来生成日历。以下是一个示例代码:

```java

import java.util.Calendar;

import java.util.Scanner;

public class CalendarProgram {

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();

Calendar calendar = Calendar.getInstance();

calendar.set(year, month - 1, 1);

int firstDayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);

int daysInMonth = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);

System.out.println(calendar.getDisplayName(Calendar.MONTH, Calendar.LONG, true) + " " + year);

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

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

System.out.print("");

}

for (int i = 1; i <= daysInMonth; i++) {

System.out.printf("%2d ", i);

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

System.out.println();

}

}

}

}

```

JavaScript

在JavaScript中,可以使用`Date`对象来生成日历。以下是一个示例代码: