计算星期几的方法有很多种,这里提供几种常见的编程语言实现方法:
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 编