定义struct计算该日是这一年的第几天

//1.定义一个结构体变量(包括年,月,日)。计算该日是本年中的第几天,注意闰年问题。

//2.写一个days,实现第一题的计算。由主函数将年,月,日传递给days函数
//,计算的日子数传回主函数输出。

#include <stdio.h>

//struct定义一个结构体变量
typedef struct Date
{
int year;
int mon;
int day;
}Date;

//判断是否是闰年
int Year(int a)
{
return((a%40&&a%100!=0)||a%4000)?1:0;
}

int Days(Date *p)
{
int tmp=0;
int y;
y=p->year;
//使用switch灵活处理,将本月之前的日子加上
switch(p->mon)
{
case 12:
tmp+=30;
case 11:
tmp+=31;
case 10:
tmp+=30;
case 9:
tmp+=31;
case 8:
tmp+=31;
case 7:
tmp+=30;
case 6:
tmp+=31;
case 5:
tmp+=30;
case 4:
tmp+=31;
case 3:
tmp+=28;
case 2:
tmp+=31;
case 1:
tmp+=0;
}
//将这个月已经过的日子加上
tmp+=(p->day);
//如果已经超过2月,判断是否增添闰年的那一天
if((p->mon)>2)
{
tmp+=Year(y);
}
//返回已经过了多少天
return tmp;
}

int main()
{
Date today={2019,2,26};
Date *p=&today;
//使用指针传递,占用内存小,速度快。
printf("%d\n",Days§);
return 0;
}

//虽然这道题比较简单,但是要把这个写好,还是需要细心

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值