#2086. 日期排序与统计

日期排序与统计

题目描述

你需要编写一个 C++ 程序,该程序能够处理一系列日期和事件描述的记录。每个记录包含一个日期和与之关联的事件描述。你的程序需要完成以下任务:

  • 按照日期的先后顺序对事件进行排序,并输出排序后的结果。
  • 统计每个月发生的事件数量,并输出统计结果。

输入格式

输入包含多行,每行代表一条记录。每条记录由日期和事件描述组成,日期和事件描述之间用一个空格分隔。日期的格式为 YYYY-MM-DD,其中 YYYY 表示年份(范围为 1900 - 2100),MM 表示月份(范围为 01 - 12),DD 表示日期(范围根据月份和是否为闰年有所不同)。事件描述是一个字符串,可能包含多个单词。

输出格式

输出分为两部分:

  1. 按日期排序的事件列表: 首先输出 Events sorted by date:,然后按照日期的先后顺序,每行输出一个事件,格式为 日期: 事件描述。
  2. 每月事件统计: 输出 Events per month:,然后按照年月的顺序,每行输出一个月的事件统计信息,格式为 YYYY-MM: 事件数量。

样例 #1

样例输入 #1

2023-01-15 Meeting
2023-01-20 Presentation
2023-02-05 Workshop

样例输出 #1

Events sorted by date:
2023-01-15: Meeting
2023-01-20: Presentation
2023-02-05: Workshop
Events per month:
2023-01: 2
2023-02: 1

数据范围

年份范围:1900 ≤ YYYY ≤ 2100

月份范围:01 ≤ MM ≤ 12

日期范围:根据月份和是否为闰年确定,如 1 月、3 月、5 月、7 月、8 月、10 月、12 月为 01 - 31;4 月、6 月、9 月、11 月为 01 - 30;2 月在平年为 01 - 28,闰年为 01 - 29。

输入记录数量不超过 1000 条。