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

问题描述

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

保证年份为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;
}
相关推荐
有谁看见我的剑了?21 分钟前
k8s-Sidecar容器学习
学习·容器·kubernetes
沐墨专攻技术32 分钟前
二、网页的“化妆师”:从零学习 CSS
css·笔记·学习
g_i_a_o_giao1 小时前
Android8 binder源码学习分析笔记(四)——ServiceManager启动
笔记·学习·binder
GilgameshJSS1 小时前
【学习K230-例程23】GT6700-音频FFT柱状图
python·学习·音视频
今天我要乾重生2 小时前
泛型的学习
学习
前端码虫2 小时前
2.9Vue创建项目(组件)的补充
javascript·vue.js·学习
PigeonGuan2 小时前
强化学习中重要性采样
学习
~kiss~2 小时前
MLLM学习~M3-Agent Prompt学习
学习
..过云雨3 小时前
03.【Linux系统编程】基础开发工具1(yum软件安装、vim编辑器、编辑器gcc/g++)
linux·c语言·笔记·学习
肥肠可耐的西西公主3 小时前
后端(FastAPI)学习笔记(CLASS 3):Tortoise ORM
笔记·学习·fastapi