- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个初始和最终日期范围 = 1/1/2015 - 1/30/2015
我有这些表示不可用日期的日期范围。
1/5/2015 - 1/10/2015
1/15/2015 - 1/20/2015
1/22/2015 - 1/28/2015
我想要这个输出,主要是主要范围的可用性日期:
A: 1/1/2015 - 1/4/2015
B: 1/11/2015 - 1/14/2015
C: 1/21/2015 - 1/21/2015
D: 1/29/2015 - 1/30/2015
我试图生成这样的顺序日期范围,以便使用 Except() 获取异常日期,但我认为我使事情复杂化了。
//dtStartDate = 1/1/2015
//dtEndDate = 1/30/2015
var days = (int)(dtEndDate - dtStartDate).TotalDays + 1;
var completeSeq = Enumerable.Range(0, days).Select(x => dtStartDate.AddDays(x)).ToArray();
如何从一段时间内获取日期范围的差距。
换句话说,我怎样才能从这张图片中得到A、B、C和D
http://www.tiikoni.com/tis/view/?id=ebe851c
如果这些日期重叠,则不能只在有差距的地方考虑它们。
------------更新------------
我认为如果我这样做:
var range = Enumerable.Range(0, (int)(1/10/2015 - 1/5/2015).TotalDays + 1).Select(i => 1/5/2015.AddDays(i));
var missing = completeSeq.Except(range).ToArray();
对于每个日期范围,我都会排除给定的每个日期范围,但仍然无法得到差距!
最佳答案
我今天早上看到你的问题,非常喜欢,但整天都很忙。所以,有机会回答你的问题,相信我,我很喜欢。这是我的代码:-
DateTime startDate = new DateTime(2015, 1, 1);
DateTime endDate = new DateTime(2015, 1, 30);
int totalDays = (int)(endDate - startDate).TotalDays + 1;
availability.Add(new Availability { StartDate = endDate, EndDate = endDate });
var result = from x in Enumerable.Range(0, totalDays)
let d = startDate.AddDays(x)
from a in availability.Select((v, i) => new { Value = v, Index = i })
where (a.Index == availability.Count - 1 ?
d <= a.Value.StartDate : d < a.Value.StartDate)
&& (a.Index != 0 ? d > availability[a.Index - 1].EndDate : true)
group new { d, a } by a.Value.StartDate into g
select new
{
AvailableDates = String.Format("{0} - {1}",g.Min(x => x.d),
g.Max(x => x.d))
};
这,绝对需要解释,所以这里是:-
第 1 步:使用 Enumerable.Range
创建从 1 月 1 日到 1 月 30 日的日期范围第 2 步: 由于在第二个不可用日期范围之后,我们需要限制从上次结束日期到当前对象开始日期选择的日期,我计算了 index
以便我们可以访问到最后一个结束日期。
第 3 步:一旦我们获得索引,我们需要做的就是过滤除第一个日期范围之外的日期,因为在这种情况下我们没有最后一个对象。
第 4 步:对于最后一项,因为我们没有最大范围,所以我将 endDate 添加到我们的不可用列表中(希望这是有意义的)。
这是 Working Fiddle ,如果你感到困惑,只需删除 group by
和其他过滤器并调试并查看结果输出,它看起来相当简单:)
关于c# - 如何在一段时间内获得日期范围内的差距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27852726/
我无法消除 IE7 中列表项之间的差距。 HTML: row 1.1
我用 jquery mobile 开发了一个 Phonegap 应用程序。它是一个单页应用程序,具有固定的页眉、固定的页脚和从左侧打开的面板。内容 DIV 为白色,面板从其默认颜色加载。 问题是当面板
我在我当前的元素中使用了 bootstrap,它工作正常但只有一个故障: 我有 3 col-sm-6彼此相邻,当第二个col-sm-6比第一、第三长col-sm-6向左移动,第一个和第三个之间出现间隙
我目前正在创建一个网站。但是,我在缩小页面最右侧的边距差距时遇到了一些问题 As seen in this picture我尝试将 body 设置为 margin 0px,但这没有帮助。任何帮助都将不
我的 OpenLayers map 有问题。我无法让瓷砖一 block 挨着另一 block 。我已经检查过侵入式 CSS,但没有找到任何东西。有人可以帮我解决这个问题吗? 我目前的代码是这样的:
我在制作 时遇到了问题我页面的标题链接展开以填满整个 在我的网页中标记。下面似乎有一个缺口,我不知道如何修复它。 我的导航栏也有类似的问题,随着我增加浏览器的大小,它不断扩展。 尝试将鼠标悬停在这个
当使用 Xcode 11 beta 5 在 iOS 13 beta 6 上运行应用程序时,我在呈现搜索结果 View Controller 时遇到了奇怪的间隙: 以下是如何设置的一些内容: let s
(PostgreSQL 8.4) 继续我的 previous example ,我希望通过窗口函数进一步理解间隙和孤岛处理。考虑下表和数据: CREATE TABLE T1 ( id SERIAL
我正在开发 PWA 网站。必须通过单击主屏幕图标来启动应用程序。问题是将 iPhone 旋转到横向位置后出现 20px 间隙。这个间隙超出了 Window 对象,所以我无法用 js 或 css 处理它
我注意到当位置设置为绝对时,表格单元格垂直对齐不起作用。我做错了什么吗? 非工作 sample bottom alignament is
我尝试添加各种标签并尝试添加相对路径:'//' 这些是我尝试过的各种meta标签 我也尝试过为相对路径添加“//”。 execIframe.contentWindow.location
我有一个 CSS 嵌套菜单在 IE 8 和 Firefox 中完美运行,但在 IE7 中它会在元素之间产生一个小间隙。这是我的 CSS: #nav, #nav ul { margin: 0;
我正在尝试使用 SwiftUI 在 HStack 中有两个 View 。但是,我一直在两种观点之间存在差距。 该问题出现在纵向和横向布局中。 我的代码: struct ContentView: Vie
我的 svg 左侧有一个小缝隙,我一辈子都无法修复它。请参阅下图了解我所指的内容。在左侧,您可以稍微看到图像。 我在 Chrome 和 Firefox 上注意到这个问题。知道问题可能是什么吗? .aw
当我在 Visual Studio 2010 中创建一个全新的 ATL 项目时,资源 ID 102 和 105 被遗漏了。这是故意的还是错误?这些 ID 在项目后期有什么用吗?我可以重新排序编号以使用
我使用 JQuery Mobile+Phone Gap 实现了 TableView A Adam Kinkaid Alex Wickerham Avery Johnson B
我是一名优秀的程序员,十分优秀!