Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在SQL中使用以下参数计算结束日期_C#_Sql - Fatal编程技术网

C# 如何在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中执行此操作。任何帮助都将不胜感激。请参阅以下内容:

我需要计算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。。。请注意,它也可能没有结束日期。