【问题标题】:C# new DateTime object add only month and date [duplicate]C#新的DateTime对象只添加月份和日期[重复]
【发布时间】:2018-05-15 09:17:26
【问题描述】:

我想创建一个新的 DateTime 对象,所以:

endDate = new DateTime(DateTime.Now.Year, DateTime.Now.Month+1, 1).AddDays(-1);

虽然,当当前月份是 12 月时,此代码会发生错误,因为是一年中的最后一个月。在创建新的 DateTime 对象时,有什么方法可以避免过年?

欢迎任何帮助!

【问题讨论】:

  • 你预计什么日期?
  • 更改逻辑如下:new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1).AddMonths(1).AddDays(-1)
  • 下个月的第一天你到底在追求什么?
  • 听起来您正在尝试获取当前月份的最后一个日期。也许使用AddMonths(1),然后从那里回溯?请注意,如果 DST 发生在月底,它可能会很有趣......
  • DateTime today = DateTime.Today; DateTime monthEnd = new DateTime(today.Year, today.Month, DateTime.DaysInMonth(today.Year, today.Month));

标签: c# .net datetime


【解决方案1】:

您无法创建没有年份的日期。

要处理“月问题”,只需这样做。

endDate = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1).AddMonths(1).AddDays(-1);

【讨论】:

  • 单独添加月份后缀后工作正常。谢谢。
猜你喜欢
  • 1970-01-01
  • 2013-01-03
  • 2012-09-29
  • 1970-01-01
  • 1970-01-01
  • 2021-07-20
  • 2019-07-10
  • 2015-06-20
  • 2017-01-27
相关资源
最近更新 更多