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

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

输入格式:

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

输出格式:

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

输入样例1:

2009/03/02

输出样例1:

61

输入样例2:

2000/03/02

输出样例2:

62

解析:题目不难但是要记得一件事,如果月份不大于3是不用计算闰年的

//计算天数
int main()
{
	int year = 0, month = 0,day = 0;
	char c = { 0 };
	int flag = 0;
	int arr[] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };
	int sum = 0;
	scanf("%4d/%2d/%2d", &year,&month,&day);
	if ((year / 4 == 0 && year / 100 != 0) || year / 400 == 0)
	{
		flag = 1;
	}
	for (int i = 1; i < month; i++)
	{
		sum += arr[i];
	}
	if (flag == 1 && month > 2)
	{
		sum += day + 1;
	}
	else
	{
		sum += day;
	}
	printf("%d", sum);

	return 0;
}

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 以下是Python代码实现: ```python year = int(input("请输入份:")) month = int(input("请输入月份:")) day = int(input("请输入日期:")) # 计算每个月的天数 month_days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] # 判断闰 if (year % 4 == and year % 100 != ) or year % 400 == : month_days[1] = 29 # 计算天数 total_days = sum(month_days[:month-1]) + day print("{}{}月{}日是该的第{}天。".format(year, month, day, total_days)) ``` 运行结果: ``` 请输入份:2021 请输入月份:5 请输入日期:12 20215月12日是该的第132天。 ``` ### 回答2: 计算某天是当第几天实际上就是计算从当的1月1日到当天的天数之和。 我们可以利用各种编程语言内置的日期和时间函数来实现这个功能,以下是Python版本的示例代码: ```Python import datetime year = int(input('请输入份:')) month = int(input('请输入月份:')) day = int(input('请输入日期:')) date = datetime.date(year, month, day) # 将输入、月、日转换为日期对象 year_start = datetime.date(year, 1, 1) # 当1月1日对应的日期对象 days_passed = (date - year_start).days + 1 # 计算已经过去的天数 print('这一天是当的第', days_passed, '天') ``` 程序首先要求用户输入计算、月、日。然后,通过Python的`datetime`模块创建一个日期对象`date`。同时,我们再创建一个日期对象`year_start`,用来表示当的1月1日。 接下来,我们通过日期对象的运算计算当前日期`date`距离当的1月1日`year_start`已经过去了多少天,然后再加上1。这是因为如果一个日期是当的1月1日,需要特殊处理。 最后,我们输出计算得到的天数即可。 当然,不同的编程语言在实现这个功能上可能略有不同,但核心思路是一样的。只需要通过内置的日期和时间函数来计算日期对象之间相差的天数,然后再加上1就可以了。 ### 回答3: 编写程序计算某年某月某日是该第几天,需要查找这一天在该第几天。通常,一的第一天是1月1日,最后一天是12月31日。但有些情况下,闰的2月份会有29天,而平却只有28天,因此我们需要区分处理。具体方法如下: 1. 判断是否为闰。闰是每4一次,但每100不是闰,但每400又是闰。所以可以写出以下判断闰的代码: ``` if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) { // 是闰 } else { // 不是闰 } ``` 2. 根据每月的天数,计算该月之前一共有多少天。需要注意的是,如果是闰的二月份,则该月之前的天数应该是两个月的天数相加(即1月和2月),否则应该只累加该月之前的天数。以下是计算某月之前天数的代码: ``` int days = 0; for (int i = 1; i < month; i++) { if (i == 2) { // 2月份特殊处理 if (isLeapYear) { days += 29; } else { days += 28; } } else if (i == 4 || i == 6 || i == 9 || i == 11) { days += 30; } else { days += 31; } } ``` 3. 将月份之前的天数和当月的天数加起来,即可得到当某月某日第几天: ``` int totalDays = days + day; ``` 最后,将totalDays输出即可得到答案。 完整的代码如下: ``` public class CalculatingDaysOfYear { public static void main(String[] args) { int year = 2021; int month = 2; int day = 10; boolean isLeapYear = false; if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) { isLeapYear = true; } int days = 0; for (int i = 1; i < month; i++) { if (i == 2) { // 2月份特殊处理 if (isLeapYear) { days += 29; } else { days += 28; } } else if (i == 4 || i == 6 || i == 9 || i == 11) { days += 30; } else { days += 31; } } int totalDays = days + day; System.out.println(year + "" + month + "月" + day + "日是" + totalDays + "天"); } } ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值