Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.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
Vb.net 计算一下日期是否是每隔一个星期五,如果是,做点什么_Vb.net_Date - Fatal编程技术网

Vb.net 计算一下日期是否是每隔一个星期五,如果是,做点什么

Vb.net 计算一下日期是否是每隔一个星期五,如果是,做点什么,vb.net,date,Vb.net,Date,因此,我需要知道如何每隔一个星期五抓取一次,从星期五的日期开始,让程序检查该日期是否为这些日期之一,如果是,则执行X函数。到目前为止,我找到了如何在一个星期五之后找到星期五,但我需要它来收集日期并保存它们,然后对照它们进行检查 Dim payday as Date= GetNext(DayOfWeek.Friday) Function GetNext(ByVal d As DayOfWeek, Optional ByVal StartDate As Date = Nothing) As Da

因此,我需要知道如何每隔一个星期五抓取一次,从星期五的日期开始,让程序检查该日期是否为这些日期之一,如果是,则执行X函数。到目前为止,我找到了如何在一个星期五之后找到星期五,但我需要它来收集日期并保存它们,然后对照它们进行检查

Dim payday as Date= GetNext(DayOfWeek.Friday) 

Function GetNext(ByVal d As DayOfWeek, Optional ByVal StartDate As Date = Nothing) As Date
    If StartDate = DateTime.MinValue Then StartDate = Now
    For p As Integer = 1 To 7
        If StartDate.AddDays(p).DayOfWeek = d Then Return StartDate.AddDays(p)
    Next
End Function
下面是我想到的If语句

If Date.Today = payday Then
    'do this
End If
我所想的大概情况

Dim startDate As Date 'fill with an initial Friday
Function IsPayday(Optional dte as Date? = Nothing) As Boolean
    dte = If(dte, Today)
    Return DateDiff(DateInterval.Day, startDate, dte) Mod 14 = 0
End Function
并使用它:

Dim yesterday = Today.AddDays(-1)
If IsPayday(yesterday) Then
    'yesterday was a pay day
End If
If IsPayday() Then
    'today is a pay day
End If
并使用它:

Dim yesterday = Today.AddDays(-1)
If IsPayday(yesterday) Then
    'yesterday was a pay day
End If
If IsPayday() Then
    'today is a pay day
End If
并使用它:

Dim yesterday = Today.AddDays(-1)
If IsPayday(yesterday) Then
    'yesterday was a pay day
End If
If IsPayday() Then
    'today is a pay day
End If
并使用它:

Dim yesterday = Today.AddDays(-1)
If IsPayday(yesterday) Then
    'yesterday was a pay day
End If
If IsPayday() Then
    'today is a pay day
End If

如果它是一个扩展,那么OP使用它的方式可能会更好:
如果thisDate.IsPayDay()那么…
@puropoix我觉得发薪日的确定是一个业务逻辑规则,不适合全球范围,因此不应该是
日期的扩展。但这取决于OP。然后测试日期可以设置为date。今天将今天的日期拉对吗?并检查这一天是否不是从2015年8月28日起每隔一个星期五,如果不是ispayday(testdate),我可以这样做,对吗?@Morrg Yes。请参阅语句和运算符。如果它是一个扩展,那么OP使用它的方式可能会更好:
如果thisDate.IsPayDay()那么…
@puropoix我觉得发薪日的确定是一个业务逻辑规则,而不是全局适用的,因此不应该是
日期的扩展。但这取决于OP。然后测试日期可以设置为date。今天将今天的日期拉对吗?并检查这一天是否不是从2015年8月28日起每隔一个星期五,如果不是ispayday(testdate),我可以这样做,对吗?@Morrg Yes。请参阅语句和运算符。如果它是一个扩展,那么OP使用它的方式可能会更好:
如果thisDate.IsPayDay()那么…
@puropoix我觉得发薪日的确定是一个业务逻辑规则,而不是全局适用的,因此不应该是
日期的扩展。但这取决于OP。然后测试日期可以设置为date。今天将今天的日期拉对吗?并检查这一天是否不是从2015年8月28日起每隔一个星期五,如果不是ispayday(testdate),我可以这样做,对吗?@Morrg Yes。请参阅语句和运算符。如果它是一个扩展,那么OP使用它的方式可能会更好:
如果thisDate.IsPayDay()那么…
@puropoix我觉得发薪日的确定是一个业务逻辑规则,而不是全局适用的,因此不应该是
日期的扩展。但这取决于OP。然后测试日期可以设置为date。今天将今天的日期拉对吗?并检查这一天是否不是从2015年8月28日起每隔一个星期五,如果不是ispayday(testdate),我可以这样做,对吗?@Morrg Yes。请参阅语句和运算符。