检查两个日期时间之间是否存在某月某日,无论年份如何

发布于 2024-12-21 05:48:20 字数 623 浏览 0 评论 0原文

tl;博士; 您将如何获取 StartDate-DateTime:2011 年 12 月 10 日,EndDate-DateTime 2012 年 1 月 15 日,并确定 Dec 1、Dec 9、Dec 17、Dec 25、Jan 1 和 Jan 9 是否适合该时间跨度,排除年份和每个都得到一个布尔值?

我有一个视觉时间跨度,由一个线性图组成,显示特定活动何时处于活动状态。

在此处输入图像描述

我得到了一个带有开始日期和结束日期的对象。

我用代表每个月 1/4 的红色背景的 DIV 覆盖了时间跨度,将它们命名为 JanQ1、JanQ2 等。

这些以可见性开始:隐藏,但在活动处于活动状态时需要更改一年中的部分时间。

我遇到的问题是获得一个忽略给出年份的真/假值。

例如,从 2011 年 12 月 10 日到 2012 年 1 月 15 日发生的事件,我想要以下结果集:

DecQ1=False,
DecQ2=True,
DecQ3=True,
DecQ4=True,
JanQ1=True,
JanQ2=True,
JanQ3=False

tl;dr;
How would you take StartDate-DateTime: Dec 10th 2011, EndDate-DateTime Jan 15th 2012, and determine whether or not Dec 1, Dec 9,Dec 17,Dec 25, Jan 1, and Jan 9 fit into that TimeSpan, Year excluded and get a Bool for each one?

I have a visual timespan consisting of a linear graph showing when a specific activity is active.

enter image description here

I am given an object with a start date, and an end date.

I have covered the timespan with a DIV having a red background representing 1/4 of each month, naming them JanQ1, JanQ2, etc..

These start off as visibility:hidden, but need to be altered in the event that the activity is active during the part of the year.

The problem I'm having is getting a true/false value that ignores the year being given.

For example, an event that goes from Dec 10th 2011 to Jan 15th 2012, I would want this result set:

DecQ1=False,
DecQ2=True,
DecQ3=True,
DecQ4=True,
JanQ1=True,
JanQ2=True,
JanQ3=False

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

与酒说心事 2024-12-28 05:48:20

这样的功能对您有用吗?

bool IsDateContained(DateTime startDate, DateTime endDate, int month, int day) {
    bool retVal = false;
    if (startDate < endDate) {
        do {
            if (startDate.Month == month && startDate.Day == day) {
                retVal = true;
                break;
            }
            startDate = startDate.AddDays(1);
        } while (startDate < endDate);
    } else {
        //crazy world!!
    }
    return retVal;
}

Would a function like this work for you?

bool IsDateContained(DateTime startDate, DateTime endDate, int month, int day) {
    bool retVal = false;
    if (startDate < endDate) {
        do {
            if (startDate.Month == month && startDate.Day == day) {
                retVal = true;
                break;
            }
            startDate = startDate.AddDays(1);
        } while (startDate < endDate);
    } else {
        //crazy world!!
    }
    return retVal;
}
尛丟丟 2024-12-28 05:48:20

在比较之前创建新的 DateTime 对象,方法是将它们设置为同一年 - http://msdn .microsoft.com/en-us/library/wb249tb7.aspx

Make new DateTime objects before comparison by setting them to the same year - http://msdn.microsoft.com/en-us/library/wb249tb7.aspx.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文