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

问题描述

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

保证年份为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;
}
相关推荐
Qhumaing2 小时前
C++学习:【PTA】数据结构 7-2 实验6-2(图-邻接表)
数据结构·c++·学习
好奇龙猫2 小时前
【日语学习-日语知识点小记-日本語体系構造-JLPT-N2前期阶段-第一阶段(1):再次起航】
学习
wdfk_prog2 小时前
[Linux]学习笔记系列 -- [fs]sysfs
linux·笔记·学习
菜的不敢吱声2 小时前
swift学习第5天
学习·ssh·swift
其美杰布-富贵-李3 小时前
TabNet: 注意力驱动的可解释表格学习架构
学习·表格数据·tabnet
im_AMBER3 小时前
Leetcode 98 从链表中移除在数组中存在的节点
c++·笔记·学习·算法·leetcode·链表
jamesge20103 小时前
kafka学习笔记
笔记·学习·kafka
_李小白3 小时前
【AlohaMini学习笔记】第一天:初见AlohaMini
笔记·学习
LaoZhangGong1233 小时前
学习TCP/IP的第1步:ARP数据包
网络·stm32·学习·tcp/ip·以太网·arp·uip
Hooray113 小时前
前后端分离_案例学习_Python+Flask+VUE3
后端·python·学习·flask