怎么编程计算星期几

时间:2025-03-01 02:49:52 明星趣事

计算星期几的方法有很多种,这里提供几种常见的编程语言实现方法:

Python 示例代码

```python

def calculate_weekday(year, month, day):

if month < 3:

month += 12

year -= 1

K = year % 100

J = year // 100

h = (day + 13 * (month + 1) // 5 + K + K // 4 + J // 4 + 5 * J) % 7

return h + 1 将星期几的数值加1,得到人类可读格式的星期

输入日期示例

year = 2025

month = 1

day = 14

weekday = calculate_weekday(year, month, day)

print(f"The day of the week for {year}-{month}-{day} is {weekday}.")

```

C 语言示例代码

```c

include

int main() {

int year, month, day, week;

printf("请输入日期(年月日):");

scanf("%d %d %d", &year, &month, &day);

if (month == 1 || month == 2) {

month += 12;

year--;

}

week = (day + 2 * month + 3 * (month + 1) / 5 + year + year / 4 - year / 100 + year / 400) % 7;

switch (week) {

case 0:

printf("星期日\n");

break;

case 1:

printf("星期一\n");

break;

case 2:

printf("星期二\n");

break;

case 3:

printf("星期三\n");

break;

case 4:

printf("星期四\n");

break;

case 5:

printf("星期五\n");

break;

case 6:

printf("星期六\n");

break;

}

return 0;

}

```

JavaScript 示例代码

```javascript

function calculateWeekday(year, month, day) {

if (month < 3) {

month += 12;

year--;

}

const K = year % 100;

const J = Math.floor(year / 100);

const h = (day + 13 * (month + 1) / 5 + K + K / 4 + J / 4 + 5 * J) % 7;

return h === 0 ? 7 : h;

}

// 输入日期示例

const year = 2025;

const month = 1;

const day = 14;

const weekday = calculateWeekday(year, month, day);

console.log(`${year}-${month}-${day} 是星期${weekday}.`);

```

Java 示例代码

```java

import java.util.Scanner;

public class WeekdayCalculator {

public static void main(String[] args) {

Scanner scanner = new Scanner(System.in);

System.out.print("请输入日期(年月日): ");

int year = scanner.nextInt();

int month = scanner.nextInt();

int day = scanner.nextInt();

int weekday = calculateWeekday(year, month, day);

String[] weekdays = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};

System.out.println(year + "-" + month + "-" + day + " 是星期" + weekdays[weekday - 1] + "。");

}

public static int calculateWeekday(int year, int month, int day) {

if (month < 3) {

month += 12;

year--;

}

int K = year % 100;

int J = year / 100;

int h = (day + 13 * (month + 1) / 5 + K + K / 4 + J / 4 + 5 * J) % 7;

return h == 0 ? 7 : h;

}

}

```

这些示例代码分别使用 Python、C 语言、JavaScript 和 Java 编