练习题——【学习补档】计算日期到天数转换

问题描述

根据输入的日期,计算是这一年的第几天。

保证年份为4位数且日期合法。

进阶:时间复杂度:O(n) ,

空间复杂度:O(1)

输入描述:

输入一行,每行空格分割,分别是年,月,日

输出描述:

输出是这一年的第几天
示例1

输入:

2012 12 31

输出:

366
示例2

输入:

1982 3 4

输出:

63

问题分析

该问题就是数天数。😁

解决方案

我们只需要算出输入的日期距年初总共多少天即可。

代码

c 复制代码
#include <iostream>
using namespace std;

int GetMonthDay(int year, int month)
{
	const static int day_arr[13] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
	if (month == 2
		&& (year % 4 == 0 && year % 100 != 0 || (year % 400 == 0)))
	{
		return 29;
	}
	return day_arr[month];
}

int main()
{
	int year, month, day;
	cin >> year >> month >> day;
	while (month != 1)
	{
		day += GetMonthDay(year, month - 1);
		month--;
	}
	cout << day;
}
相关推荐
茯苓gao28 分钟前
嵌入式开发笔记:QSerialPort 完整使用指南——从基础 API 到工程实战
笔记·嵌入式硬件·qt·学习
min(a,b)1 小时前
学习第 6 天:类型注解、装饰器与高级特性
python·学习
minglie11 小时前
线性电枢和分圆多项式
学习
汉堡包0011 小时前
【工具分享】--威胁情报平台大全
学习·安全·web安全·信息安全
旺仔学长 哈哈2 小时前
55384 消防安全教育与逃生演练小程序:知识学习、案例浏览和在线演练一站式实现
学习·小程序·消防教育·逃生演练
今夜有雨.3 小时前
C++JSON 解析器
c++·笔记·后端·学习·json
Mr+范3 小时前
电源诱骗芯片CH224K
单片机·学习
幸福在路上wellbeing3 小时前
AI 智能体开发 · Day 1 详细学习手册
人工智能·学习
xian_wwq4 小时前
【学习笔记】框架层坍缩——LangChain 们正在被重新定义-14/15
笔记·学习·langchain
吃好睡好便好4 小时前
Creo中工作目录的设置
学习·creo·工作目录