Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.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/1/vb.net/17.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# 如何计算下一个相交周期?实体框架_C#_Sql Server_Asp.net Mvc_Entity Framework - Fatal编程技术网

C# 如何计算下一个相交周期?实体框架

C# 如何计算下一个相交周期?实体框架,c#,sql-server,asp.net-mvc,entity-framework,C#,Sql Server,Asp.net Mvc,Entity Framework,我需要找出哪个周期与用户选择的月份相交 一个人有一个工作周期,从一个月的第一天开始,跨越一定的月数 例如: start: 2019-01-01 spans: 2 months 这意味着它将于2019-03-01年结束,这一时期将于结束日期“重新开始”。因此,下一阶段将是2019-03-01至2019-05-01 当用户选择一个月时,例如2020年10月。 我有日期2020-10-01到2020-11-01 我需要找出重复周期与所选月份相交的日期 我需要利用这段时间来安排员工的轮班 这就是我尝试

我需要找出哪个周期与用户选择的月份相交

一个人有一个工作周期,从一个月的第一天开始,跨越一定的月数

例如:

start: 2019-01-01
spans: 2 months
这意味着它将于2019-03-01年结束,这一时期将于结束日期“重新开始”。因此,下一阶段将是2019-03-01至2019-05-01

当用户选择一个月时,例如2020年10月。 我有日期2020-10-01到2020-11-01

我需要找出重复周期与所选月份相交的日期

我需要利用这段时间来安排员工的轮班

这就是我尝试过的:

var test = context.shifts
                  .Where(x => ids.Contains(x.personId))
                  .GroupBy(x => x.person)
                  .Select(x => new
                               {
                                  Id = x.Key.personId,
                                  NewPeriodStart = DbFunctions.DiffDays(DbFunctions.AddMonths(DbFunctions.CreateDateTime(x.Key.workPeriod.Year, x.Key.workPeriod.Month, x.Key.workPeriod.Day, null, null, null), x.Key.intWorkPeriodLength), selectedMonthEnd) / (x.Key.intWorkPeriodLength * 30)
                               });
我想我需要计算一下,为了让它相交,我必须重复这个周期多少次

得到这两个时期之间的变化,但我不能全神贯注,我的数学也不是最好的

谢谢大家!

我感谢所有能帮我解决这个问题的人=)