[PTA]练习7-9 计算天数

Posted Spring-_-Bear

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[PTA]练习7-9 计算天数相关的知识,希望对你有一定的参考价值。

[PTA]练习7-9 计算天数

本题要求编写程序计算某年某月某日是该年中的第几天。

输入格式:
输入在一行中按照格式“yyyy/mm/dd”(即“年/月/日”)给出日期。注意:闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除。闰年的2月有29天。

输出格式:
在一行输出日期是该年中的第几天。

输入样例1:
2009/03/02
输出样例1:
61
输入样例2:
2000/03/02
输出样例2:
62

  • 提交结果:

在这里插入图片描述

  • 源码:
#include<stdio.h>
int isLeapYear(int year);   // 函数定义
int main(void)
{
	char date[10];
	int year, month, day, countDay;
	int dayInMonth[13] = { 0,31,0,31,30,31,30,31,31,30,31,30,31 };   // 月份对应天数,2月天数暂为0,后续判断后赋值

	for (int i = 0; i < 10; i++)   // 获取输入的字符串
	{
		date[i] = getchar();
	}

	year = (date[0] - '0') * 1000 + (date[1] - '0') * 100 + (date[2] - '0') * 10 + (date[3] - '0');   // 通过ASCII码转换,计算年份
	month = (date[5] - '0') * 10 + (date[6] - '0');   // 计算月份
	day = (date[8] - '0') * 10 + (date[9] - '0');     //计算天数

	countDay = 0;

	if (isLeapYear(year) == 1)   // 该年是闰年,2月有29天
	{
		dayInMonth[2] = 29;
	}
	else   // 非闰年,2月有28天
	{
		dayInMonth[2] = 28;
	} 

	for (int i = 1; i < month; i++)   // 计算month前几个月的天数和
	{
		countDay += dayInMonth[i];
	}

	// 加上month该月的天数
	countDay += day;

	printf("%d", countDay);

	return 0;
}

// 函数名:isLeapYear
// 功能:根据传入的年份值,判断该年是否是闰年,是则返回1,否则返回0;
// 参数:year年份值
// 返回值:1:是闰年;   0:不是闰年
int isLeapYear(int year)
{
	if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
	{
		return 1;
	}
	return 0;
}

以上是关于[PTA]练习7-9 计算天数的主要内容,如果未能解决你的问题,请参考以下文章

[PTA]实验7-2-4 计算天数

[PTA]练习8-2 计算两数的和与差

PTA查验身份证

[PTA]练习10-1 使用递归函数计算1到n之和

PTA题目集7-9的总结

PTA的Python练习题