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

问题描述

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

保证年份为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;
}
相关推荐
MartinYeung59 小时前
[论文学习]无资料选择性遗忘:透过模型反演实现 LLM 的资料免隐私保护(DFSU)
学习
阿寻寻9 小时前
【人工智能学习-20260608】什么是生成式AI?
人工智能·学习
sensen_kiss9 小时前
CPT304 SoftwareEngineeringII 软件工程 2 Pt.5 软件复用(Software Reuse)
学习·软件工程
xian_wwq9 小时前
【学习笔记】倾斜摄影、高斯泼溅(3DGS)、点云与数字孪生“族谱”全盘点
笔记·学习·3d
伶俜669 小时前
# ✨ 零基础学 ArkUI 动画(专题一):从 animateTo 到 Lottie,一篇吃透全部
学习·华为·harmonyos
伶俜6610 小时前
# [特殊字符] 零基础学 ArkUI 数据持久化(专题三):5 种存储方案深度对比
学习·华为·wpf·harmonyos
Lucky_ldy10 小时前
51单片机的学习终(结合中科协的个人自用笔记)
笔记·学习·51单片机
星幻元宇VR10 小时前
消防教育基地展厅设备【消防知识安全竞赛系统】
人工智能·科技·学习·安全
yuegu77710 小时前
HarmonyOS应用<节气通>开发第15篇:学习记录页面
学习·信息可视化·harmonyos
YangYang9YangYan10 小时前
民办本科大数据专业学习数据分析的价值分析
大数据·学习·数据分析