Vb.net 如何编写if语句来确定在其中两个语句之间使用哪种方法

Vb.net 如何编写if语句来确定在其中两个语句之间使用哪种方法,vb.net,Vb.net,我需要if语句的帮助,以根据指定的工作日时间确定使用2个方法中的哪一个(运行进程)。日期无关紧要。 这是怎么回事? 我不需要这些方法的帮助 将根据指定的时间使用AllDocuments和GetDocsInlast60分钟这两种方法 要求 使用方法所有文档 如果时间是上午8点到9点 如果时间是上午11点至上午11:05 如果时间是下午1点到下午1:05 如果时间是下午3点-下午3:05 如果时间是下午5点-下午5:05 使用getdocsinlast60分钟的方法 如果时间是上午9点到下午5点 我

我需要if语句的帮助,以根据指定的工作日时间确定使用2个方法中的哪一个(运行进程)。日期无关紧要。 这是怎么回事? 我不需要这些方法的帮助

将根据指定的时间使用AllDocuments和GetDocsInlast60分钟这两种方法

要求

使用方法所有文档

如果时间是上午8点到9点

如果时间是上午11点至上午11:05

如果时间是下午1点到下午1:05

如果时间是下午3点-下午3:05

如果时间是下午5点-下午5:05

使用getdocsinlast60分钟的方法 如果时间是上午9点到下午5点

我不知道如何处理if语句

If (time is 8AM to 9AM) Then
Use GetDocsInLast60Minutes 

If (time is between 11 AM and 11:05 AM ) Then
Use AllDocuments
'etc

我认为您希望在定义的时间段内的所有时间调用第一个方法(AllDocuments),在前一个时间段未涵盖的上午8点到下午17点之间的所有其他时间调用第二个方法

一种可能的方法是转换TimeSpan中的实际时间,并根据一组预定义常量检查分钟数(您也可以将其更改为配置文件或数据库加载的设置)

Dim ts=New TimeSpan(DateTime.Now.Hour,DateTime.Now.Minute,0)
ts.TotalMinutes.Dump()
'您的时间段的常数以分钟为单位
常数am8为双=480'480=8小时*60分钟
常数am9为双精度=540
常数am11为双精度=660
常数am11_05为双=665
常数pm13为双=780
常数pm13_05为双=785
常数pm15为双=900
常数pm15_05为双=905
常数pm17为双=1020
常数pm17_05为双=1025
Dim tm=总分钟数

如果(tm>=am8 AndAlso tm=am11 AndAlso tm=pm13 AndAlso tm=pm15 AndAlso tm=pm17 AndAlso tm=am8 AndAlso tm如果时间在所需的时间段内,您可能希望调用所有文档,并在所有其他情况下调用另一个文档。Steve这起作用了。现在,我知道该过程只在工作日运行,只在工作日运行。我如何检查这一天是周末(周六和周日),然后跳过运行if weekend?DateTime.Today.DayOfWeek=DayOfWeek.Saturday或lse DateTime.Today.DayOfWeek=DayOfWeek.SundayI添加了代码,但是如何在调试中欺骗程序,使其认为今天是周六或周日,以便在if语句出现时可以运行呢?日期显示为2(星期二)但我需要让它认为今天是0(星期六)或6(星期日)在调试会话中执行快速测试,您可以将DateTime.Now更改为DateTime.Now.AddDays(-2)(记住在测试后删除它)或将DateTime.Now.AddDays(-2)分配给临时DateTime变量,并在创建时间戳时使用此temp
Dim ts = New TimeSpan(DateTime.Now.Hour, DateTime.Now.Minute, 0)
ts.TotalMinutes.Dump()

' Constants for your timeslots expressend in minutes
Const am8 As Double = 480     ' 480 = 8h * 60min
Const am9 As Double = 540
Const am11 As Double = 660
Const am11_05 As Double = 665
Const pm13 As Double = 780
Const pm13_05 As Double = 785
Const pm15 As Double = 900
Const pm15_05 As Double = 905
Const pm17 As Double = 1020
Const pm17_05 As Double = 1025

Dim tm = ts.TotalMinutes

If (tm >= am8 AndAlso tm <= am9) OrElse
    (tm >= am11 AndAlso tm <= am11_05) OrElse
    (tm >= pm13 AndAlso tm <= pm13_05) OrElse
    (tm >= pm15 AndAlso tm <= pm15_05) OrElse
    (tm >= pm17 AndAlso tm <= pm17_05) Then
    AllDocuments()
Else if(tm >= am8 AndAlso tm <= pm17) Then
    GetDocsInLast60Minutes() 
Else
    Console.WriteLine("No call")
End If