gpt4 book ai didi

c# - 在字符串数组中查找下一个可用日期

转载 作者:行者123 更新时间:2023-11-30 23:32:18 24 4
gpt4 key购买 nike

我一直在尝试找出如何根据当前日期获取下一个可用日期,即,如果今天是星期五,则在 Array 中搜索下一个最近的日期,例如 Array 值为 1[Monday]、2[Tuesday ], 4[星期四], 6[星期六] 那么我的第二天应该是星期六。

这是我尝试过的

    //Here i'll get days like 0, 2, 3, 4, 6 pattern, and i'm spliting them based on comma to get single-single day value in array of string 
string[] GetDays = DayInWeek.Split(','); [Here day patterns will change everytime, based on user selection]

//Here i'm looping to take each day and get Enum Text based on Enum Value
foreach (string FirstDay in GetDays)
{
//Here i'm converting the string value into int and passing to DayOfWeek Enum to get respective day
DayOfWeek DayChoosen = ((DayOfWeek)(Convert.ToInt32(FirstDay)));

//Here i have my actual day for example Friday
DayOfWeek StartDay = "Friday";

//Here i need condition to find next available day in the foreach i.e., after Friday next value should be Saturday, or Sunday, Monday & so on until Friday==Friday
if (StartDay == DayChoosen)
{
//End foreach
}
}

正如我所说的,基于当前日期,我应该找到下一个可用的日期,即,如果星期五,我应该搜索星期六,如果星期六不存在,那么星期日、星期一等等,直到星期五 = 星期五

最佳答案

使用 foreach 不需要所有这些操作。

您可以执行以下操作:

private int nextDay(string dayInWeek, int startDay) 
{
int[] getDays = dayInWeek.Split(',').Select(int.Parse).ToArray();

return getDays.Where(d => d > startDay).Any()
? getDays.Where(d => d > startDay).Min()
: getDays.Min();
}

此算法检查是否有一周中的任何几天出现在您的数组中,并且在 startDay 之后。否则,它会输出一周中的第一个可用日期。

例如,对于字符串“0, 2, 3, 4, 6”:

  • 对于 startDay 0 - 输出 2,因为它是大于 0 的最小整数
  • 对于 startDay 1 - 输出 2
  • 对于 startDay 3 - 输出 4
  • 对于 startDay 6,它没有找到超过 6 的项目,并输出最小值 0

对于字符串“5”(仅限星期五):

  • 对于 startDay 5, 6 - 没有找到超过 5 的项目,输出最小值 (5)
  • 对于 startDay 0-4 - 输出 5,作为大于 0-4 的最小数字

关于c# - 在字符串数组中查找下一个可用日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34349845/

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