[C/C++]_[中级]_[获取月份的最后一天]

本文介绍了在C++中如何利用chrono库获取某月份的最后一天。由于std::chrono::month_last返回的是月份,而非具体日期,因此通过获取下个月的第一天再减去一天来得到目标月份的最后一天。文章提供了调用示例和相关参考链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

场景

  1. C/C++的新版日期类型并不能获取日期的具体数值。C++20std::chrono::month_day_last可以获取某月的最后一天,但是返回的类型是month_day_last类型,这个类型无法获取天数,只能获取月份。 所以C/C++如何获取某年月份的最后一天?

说明

  1. C++20之前,获取年月日的数值还是得借助<time.h>库,通过转换为time_t类型之后再转换为struct tm类型获取数值,功能比较弱。所以这里只需要C库的<time.h>即可实现。

  2. 实际上月份的最后一天可能是28,29,30,31,它是与年份有关的,所以决定它的日期还是得通过获取系统计算出来的实际值。方法就是通过获取下一个月份的1号的日期,之后再减去固定的每日24小时即可获取前一天的日期,也就是当前月的最后一天。

  3. 我们知道time_t的时间单位是秒,而一天总共有60*60*24 = 86400秒。

例子


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白行微

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值