c++输出某日是某年那天

#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;

int main()
{
    int a[]={31,0,31,30,31,30,31,31,30,31,30,31};
    int i,j,num,k,l,t,year,month,day;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d%d%d",&year,&month,&day);
        num=day;
        for(i=0;i<month-1;i++)
            num+=a[i];
            if(month>2)
            {
                if(year%4==0&&year%100!=0||year%400==0)
                   num+=29;
                   else num+=28;
            }
        printf("%d\n",num);
    }
return 0;
}

点击打开链接
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个用C语言编写的程序,可以输入某年某月某日,然后计算并输出一天是星期几。 ```c #include <stdio.h> int main() { int year, month, day; printf("请输入年月日,格式为:年 月 日\n"); scanf("%d %d %d", &year, &month, &day); int days[] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; int total_days = 0; for (int i = 1; i < month; i++) { total_days += days[i]; } total_days += day; if (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0) && month > 2) { total_days += 1; } int day_of_week = (year - 1) % 7; for (int i = 1; i < year; i++) { if (i % 4 == 0 && (i % 100 != 0 || i % 400 == 0)) { day_of_week = (day_of_week + 2) % 7; } else { day_of_week = (day_of_week + 1) % 7; } } for (int i = 1; i < month; i++) { day_of_week = (day_of_week + days[i]) % 7; if (i == 2 && year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)) { day_of_week = (day_of_week + 1) % 7; } } day_of_week = (day_of_week + day - 1) % 7; char* weekdays[] = { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" }; printf("%d年%d月%d日是%s。\n", year, month, day, weekdays[day_of_week]); return 0; } ``` 程序的运行方式是: 1. 先输出提示信息,让用户输入年月日; 2. 读入用户输入的年月日; 3. 根据输入的年月日计算出该天是这一年的第几天,包括闰年的情况; 4. 根据输入的年份和月份计算出该年的1月1日是星期几,然后再根据该天是这一年的第几天计算出这一天是星期几; 5. 输出结果。 由于闰年的情况比较复杂,所以程序中使用了一些较为复杂的计算方式。但是这种方法可以确保准确性,即使是在比较古老的年代也能正确地计算出星期几。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值