C# 如何在SQL中使用以下参数计算结束日期
我需要计算RRULE的结束日期: 每周周二和周四,为期5周: DTSTART;TZID=美国东部:19970902T09000 RRULE:FREQ=每周;直到=19971007T000000Z;WKST=SU;BYDAY=TU,TH 或 RRULE:FREQ=每周;计数=10;WKST=SU;BYDAY=TU,TH ==>(1997年美国东部时间上午9:00)9月2、4、9、11、16、18、23、25、30日;十月二日 我需要在ms SQL中执行此操作。任何帮助都将不胜感激。请参阅以下内容:C# 如何在SQL中使用以下参数计算结束日期,c#,sql,C#,Sql,我需要计算RRULE的结束日期: 每周周二和周四,为期5周: DTSTART;TZID=美国东部:19970902T09000 RRULE:FREQ=每周;直到=19971007T000000Z;WKST=SU;BYDAY=TU,TH 或 RRULE:FREQ=每周;计数=10;WKST=SU;BYDAY=TU,TH ==>(1997年美国东部时间上午9:00)9月2、4、9、11、16、18、23、25、30日;十月二日 我需要在ms SQL中执行此操作。任何帮助都将不胜感激。请参阅以下内容:
DateTime date = new DateTime(2020, 7,17);
DayOfWeek dayOfWeek = date.DayOfWeek;
int addOffset = 0;
//get first tuesday or thursday
switch (dayOfWeek)
{
case DayOfWeek.Sunday :
addOffset = 2;
break;
case DayOfWeek.Monday:
addOffset = 1;
break;
case DayOfWeek.Tuesday:
addOffset = 0;
break;
case DayOfWeek.Wednesday:
addOffset = 1;
break;
case DayOfWeek.Thursday:
addOffset = 0;
break;
case DayOfWeek.Friday:
addOffset = 4;
break;
case DayOfWeek.Saturday:
addOffset = 3;
break;
}
DateTime startDate = date.AddDays(addOffset);
DateTime currentDate = startDate;
int numberOfWeeks = 5;
for (int i = 0; i < numberOfWeeks; i++)
{
for(int j = 0; j < 2; j++)
{
Console.WriteLine(currentDate);
if (currentDate.DayOfWeek == DayOfWeek.Tuesday)
{
currentDate = currentDate.AddDays(2);
}
else
{
currentDate = currentDate.AddDays(5); //from thursday to tuesday
}
}
}
Console.ReadLine();
DateTime日期=新的日期时间(2020,7,17);
DayOfWeek DayOfWeek=date.DayOfWeek;
int addOffset=0;
//第一个星期二或星期四
开关(星期五)
{
星期日,星期日:
addOffset=2;
打破
案件星期一星期一:
addOffset=1;
打破
案件星期二:
addOffset=0;
打破
星期三,星期三:
addOffset=1;
打破
星期四,星期四:
addOffset=0;
打破
案件星期五星期五:
addOffset=4;
打破
星期六,星期六:
addOffset=3;
打破
}
DateTime startDate=date.AddDays(addOffset);
DateTime currentDate=开始日期;
int numberOfWeeks=5;
对于(int i=0;i
您共享的详细信息无法解释任何事情。你能为他们分享一些示例输入和预期输出吗?还要解释生成输出的逻辑吗?您是否也可以分享您编写的任何代码,并告诉我们您面临的确切问题?这是否回答了您的问题?例如:开始日期=17-07-2020会议次数=31(周一至周五)(日期计算:日期值周一1周二2周三4周四8周五16周六32周日64)计数:2所以发送结束日期应该是:20-07-2020预期结果=20-07-2020如果计数=3,那么发送结束日期应该是:21-07-2020预期结果=21-07-2020我希望你能从中得到一些想法。如果你需要更多信息,请告诉我。谢谢,您好@MurrayFoxcroft,谢谢您分享详细信息。我需要在SQL中实现它,我提到它是c#因为如果我从c#中获取逻辑,那么我可以将它转换为SQL。谢谢,Pankaj Kadian RRULE的结束日期是在UNTIL=19971007T000000Z。。。请注意,它也可能没有结束日期。