任意给出一个年月日,求出是星期几。 输入: 年 月 日 输出: 0~6。
时间: 2024-10-23 12:17:25 浏览: 166
在中国农历和公历中,确定某一天是星期几通常依赖于一个计算公式,称为蔡勒公式(Zeller's congruence)。这个公式可以用于根据给定的日期(公元纪年、月份和日期)推算出对应的星期数。以下是蔡勒公式的Python版本:
```python
def get_weekday(year, month, day):
if month < 3:
month += 12
year -= 1
century = year // 100
year_of_century = year % 100
week_number = (day + 2 * month + 3 * (month + 1) // 5 + year_of_century + year_of_century // 4 +世纪 % 4 - 2*century) % 7
# 星期从0开始计数,0代表周日
return (week_number + 7) % 7
# 示例:
year = int(input("请输入年份: "))
month = int(input("请输入月份(1-12): "))
day = int(input("请输入日期: "))
weekday = get_weekday(year, month, day)
print(f"{year}/{month}/{day} 是星期{weekday}")
```
当你运行这个程序并输入相应的年月日,它会返回一个介于0(周日)到6(周六)之间的数字,表示那一天是星期几。
相关问题
C语言任意输入一个年月日,求这一天是星期几
要计算任意输入的年月日是星期几,可以使用蔡勒公式(Zeller's Congruence)。蔡勒公式是一种计算任意日期是星期几的算法。以下是使用C语言实现该算法的示例代码:
```c
#include <stdio.h>
int main() {
int year, month, day;
printf("请输入年份:");
scanf("%d", &year);
printf("请输入月份:");
scanf("%d", &month);
printf("请输入日期:");
scanf("%d", &day);
if (month < 3) {
month += 12;
year -= 1;
}
int K = year % 100;
int J = year / 100;
int h = (day + (13 * (month + 1)) / 5 + K + (K / 4) + (J / 4) + 5 * J) % 7;
switch (h) {
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;
}
```
这个程序首先提示用户输入年份、月份和日期。然后,它使用蔡勒公式计算这一天是星期几,并将结果输出。
1.假如你活到一百岁,请算出你现在还剩下多少天2.给出任意一个年月日得到该天是星期几(格式:星期一、星期二等)请写出以上Java程序并说明为什么
如果我现在活到一百岁,我们假设当前日期已经过去了,我们可以简单地从我的年龄减去出生日期的天数来计算剩余的天数。不过这里需要注意的是,实际的算法会更复杂些,因为要考虑闰年的情况。在Java中,你可以这样做:
```java
import java.time.LocalDate;
import java.time.Period;
public class AgeCalculator {
public static void main(String[] args) {
int currentAge = 100; // 假设我活到了100岁
LocalDate birthDate = LocalDate.of(1970, 1, 1); // 用一个固定的出生日期举例
Period agePeriod = Period.between(birthDate, LocalDate.now());
long totalDaysLived = agePeriod.getDays();
long remainingDays = currentAge * 365 - totalDaysLived; // 简单计算,忽略闰年因素
System.out.println("如果你活到100岁,你还剩下大约 " + remainingDays + " 天");
}
}
```
对于给定任意一个年月日判断星期几,可以使用`java.time`包下的`DayOfWeek`类,如下:
```java
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.temporal.TemporalAdjusters;
public class DateToWeekday {
public static void main(String[] args) {
String inputDateString = "2023-04-08"; // 输入日期
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate date = LocalDate.parse(inputDateString, formatter);
DayOfWeek dayOfWeek = date.getDayOfWeek();
switch (dayOfWeek) {
case MONDAY:
System.out.println("星期一");
break;
case TUESDAY:
System.out.println("星期二");
break;
// 其他case...
default:
System.out.println(dayOfWeek);
}
}
}
```
这个程序首先解析输入的日期字符串,然后获取其对应的`DayOfWeek`,再通过`switch`语句输出对应的结果。
阅读全文
相关推荐
















