You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何利用DateTime/DateOnly优雅获取目标月份的第4天?

优雅实现获取下个月4号的DateTime对象

直接利用DateTime.AddMonths()方法就能自动处理年份切换的问题,完全不用手动判断月份是否为12月,推荐两种简洁写法:

  1. 基于当前日期调整月份后固定日期:
var nextMonth4th = DateTime.Now.AddMonths(1);
nextMonth4th = new DateTime(nextMonth4th.Year, nextMonth4th.Month, 4);

AddMonths(1)会自动处理12月转次年1月的场景,之后把日期固定为4号即可,逻辑简单直接。

  1. 从当月第一天出发的链式写法:
var nextMonth4th = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1)
    .AddMonths(1)
    .AddDays(3);

先取当月1号,推到下个月1号后再加3天,直接得到下个月4号,这种写法不受当前日期的日部分影响(比如当前是31号时,AddMonths会自动调整到下月最后一天,这种链式写法能更稳妥地定位到4号)。

如果需要基于某个特定给定时间点(而非当前时间),只需把DateTime.Now替换为目标时间对象:

DateTime givenDate = /* 你的给定时间点 */;
var nextMonth4th = new DateTime(givenDate.Year, givenDate.Month, 1)
    .AddMonths(1)
    .AddDays(3);

这样实现既简洁又能覆盖所有月份场景,完美适配MassTransit对DateTime对象的要求。

内容的提问来源于stack exchange,提问作者Jon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 21:32:45