gpt4 book ai didi

c# - 当前日期公式中特定日期的最后日期

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:24:58 25 4
gpt4 key购买 nike

我有一个要求,我想根据今天的日期计算给定日期的最后一个日期。例如我有一个方法

DateTime GetDate(DateTime now, DayOfWeek dayOfWeek)
{
//Logic goes here
}

例如

  1. 如果我在 dayofWeek 中过了星期五,而今天是星期一,那么它应该返回我上周五的日期。
  2. 如果我过了星期五,而今天是星期五,那么应该是同一天 返回。

条件:

  1. 我只想使用公式来计算日期。
  2. 不希望任何事情被假定或硬编码。
  3. 我不想使用 if...else。

最佳答案

您可以通过将当前星期几与目标星期几进行比较来算出要减去多少天,如果为负则换行:

static DateTime GetDate(DateTime now, DayOfWeek dayOfWeek)
{
// Number of days to subtract, e.g. 1 for "today is Friday, we want Thursday"
// The ((...) + 7) % 7 part is to handle wrap-around for negative values.
int daysDifference = ((now.DayOfWeek - dayOfWeek) + 7) % 7;
return now.AddDays(-daysDifference);
}

或使用 Noda Time (我的日期/时间 API 允许更清晰地表示“只是一个日期”等):

static LocalDate GetDate(LocalDate today, IsoDayOfWeek dayOfWeek)
{
return today.IsoDayOfWeek == dayOfWeek ? today : today.Previous(dayOfWeek);
}

关于c# - 当前日期公式中特定日期的最后日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11557668/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com