输入一个日期,判断它是当年的第几天。

代码如下:

#include <stdio.h>
#define MONTH_1 31
#define MONTH_2 28
#define MONTH_3 31
#define MONTH_4 30
#define MONTH_5 31
#define MONTH_6 30
#define MONTH_7 31
#define MONTH_8 31
#define MONTH_9 30
#define MONTH_10 31
#define MONTH_11 30
#define MONTH_12 31

int main(int argc, const char *argv[])
{
	int years = 0;
	int month = 0;
	int days = 0;
	int sum = 0;
	//闰年:1,平年:0
	int leap = 0;
	printf("请输入要查询的日期:年/月/日");
	scanf("%d%d%d",&years,&month,&days);
	if((years%4 == 0 && years%100 != 0 || years%400 == 0)){
		leap = 1;
	}
	if(month<1 || month>12){
		printf("月份输入有误\n");
		return -1;
	}
	if(month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12  ){
		if(days<1 || days>31){
			printf("日期输入有误\n");
			return -1;
		}
	}
	if(month == 4 || month == 6 || month == 9 || month == 11){
		if(days<1 || days>30){
			printf("输入日期有误\n");
			return -1;
		}
	}
	if(month == 2){
		if(leap == 0){
			if(days<1 || days>28){
				printf("输入日期有误\n");
				return -1;
			}
			
		}else if(leap == 1){
			if(days<1 || days>29){
				printf("输入日期有误\n");
				return -1;
			}
		}
	}
	switch(month){
		case 12:
			sum += MONTH_11;
		case 11:
			sum += MONTH_10;
		case 10:
			sum += MONTH_9;
		case 9:
			sum += MONTH_8;
		case 8:
			sum += MONTH_7;
		case 7:
			sum += MONTH_6;
		case 6:
			sum += MONTH_5;
		case 5:
			sum += MONTH_4;
		case 4:
			sum += MONTH_3;
		case 3:
			sum += MONTH_2 + leap;
		case 2:
			sum += MONTH_1;
		case 1:
			sum += days;
			break;
	}
	printf("%d年%d月%d日是%d年的第%d天\n",years,month,days,years,sum);
	return 0;
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大鱼YY

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值