确定日期是否为“休息日”

时间:2011-12-15 20:20:56

标签: c# date

在我的工作中,我们正处于9/80计划中,我们每隔一个星期五都会关闭。我们有一个小程序,显示一个DevExpress.Scheduler控件,我想给我们的“星期五关闭”着色不同的颜色。我需要知道的是我如何知道约会是否是我们星期五的约会?星期五的休息时间总是每隔一周(换句话说,由于假期或类似的事情,我们不会跳过一周)。我有一年中第一个星期五的日期,所以我想我可以以某种方式使用它...我也可以从调度程序中获取日期,因为它已被绘制,所以我有一些东西要比较。

DateTime dtFirstFridayOff = new DateTime(2011, 1, 1);
DateTime dtCellDate = Convert.ToDateTime(e.Cell.Value);

现在我有点迷失了如何检查dtCellDate是否是星期五关闭。

2 个答案:

答案 0 :(得分:5)

    public static bool IsDateMultipleDays(DateTime originalDate, int numberOfDays, DateTime potentialDate)
    {
        var original = originalDate.Date; // to make sure that it doesn't have a time portion
        var potential = potentialDate.Date;
        var difference = potential - original;
        return (int)difference.TotalDays % numberOfDays == 0;
    }

然后你会这样称呼它:

IsDateMultipleDays(dtFirstFridayOff, 14, dtCellDate)

答案 1 :(得分:0)

试试这个:

bool IsFridayOff(DateTime dt)
{
    if (dt.DayOfWeek != DayOfWeek.Friday)
    {
        return false;
    }

    DateTime dtFirstFridayOff = new DateTime(2011, 1, 1);
    TimeSpan span = dtFirstFridayOff - dt.Date;

    return (int) span.TotalDays%14 == 0;
}