用结构体计算日期

#include<iostream>
using namespace std;
struct Date
{
 int year;
 int month;
 int day;
}date;
int main()
{
 int days;
 cin>>date.year>>date.month>>date.day;cout<<endl;
 switch(date.month)
 {
 case 1:days=date.day;break;
 case 2:days=date.day+31;break;
 case 3:days=date.day+59;break;
 case 4:days=date.day+90;break;
 case 5:days=date.day+120;break;
 case 6:days=date.day+151;break;
 case 7:days=date.day+181;break;
 case 8:days=date.day+212;break;
 case 9:days=date.day+243;break;
 case 10:days=date.day+273;break;
 case 11:days=date.day+304;break;
 case 12:days=date.day+334;break;
 }
 if(date.year%4==0&&date.year%100!=0)
 {
  if(date.month<=2)
   cout<<days<<endl;
  if(date.month>2)
   cout<<days+1<<endl;
 }
 else
  cout<<days<<endl;
 return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以帮你解答这个问题。 首先,我们可以使用一个结构体来表示日期,其中包含年、月和日的成员变量。以下是一个示例的结构体定义: ```c struct Date { int year; int month; int day; }; ``` 然后,我们可以从键盘输入一个日期,并将其存储到一个日期结构体变量中。你可以使用`scanf`函数来实现输入操作。例如: ```c struct Date date; printf("请输入日期(年 月 日):"); scanf("%d %d %d", &date.year, &date.month, &date.day); ``` 接下来,我们需要编写一个函数来计算给定日期在当年中是第几天。我们可以使用一个数组来存储每个月份对应的天数,考虑到闰年的情况。以下是一个示例的计算函数: ```c int dayOfYear(struct Date date) { int daysInMonth[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; int dayCount = date.day; // 考虑闰年的情况 if ((date.year % 4 == 0 && date.year % 100 != 0) || date.year % 400 == 0) { daysInMonth[1] = 29; } for (int i = 0; i < date.month - 1; i++) { dayCount += daysInMonth[i]; } return dayCount; } ``` 最后,我们可以在主函数中调用上述函数,并打印出计算结果: ```c int main() { struct Date date; printf("请输入日期(年 月 日):"); scanf("%d %d %d", &date.year, &date.month, &date.day); int dayCount = dayOfYear(date); printf("该日期在当年中是第 %d 天\n", dayCount); return 0; } ``` 这样,当你从键盘输入一个日期后,程序会计算出该日期在当年中是第几天,并将结果打印出来。希望能对你有所帮助!如果你还有其他问题,请继续提问。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值