0

我需要一些帮助来编写一个 VB 函数来将系统时间与我的第 1 列日期时间变量进行比较,并返回不同的颜色背景。这是条件...

  • 如果 scheduleTime 延迟 0-15 分钟,则背景行颜色为红色
  • 如果 scheduleTime 延迟 15mins-30mins,则背景行颜色为黄色
  • 如果 scheduleTime 延迟 30 分钟到 2 小时,则背景行颜色为绿色

行渲染事件:

 Row_Rendered();

 DateTime systemTime = DateTime.Now();
 DateTime fieldTime = SCHD_DTM.CurrentValue;
 DateTime result As Integer = DateTime.Compare(fieldTime,systemTime).TotalMinutes

 if result <= 0.25 Then 
     RowATTrs("style") = "background-color:Red";

 else if result > 0.25 & result <- 0.5 Then 
     RowATTrs("style") = "background-color:Yellow";

 else if result > 0.5 & result <= 2 Then
     RowATTrs("style") = "background-color:Green";

 End If

这就是我所拥有的,我没有得到任何回应......

4

2 回答 2

1

“我没有得到回应”并不是对错误或不良行为的良好描述。但是,您在代码中混合了 C# 和 VB.NET。当然不会编译。

但这应该:

Dim systemTime As date = Date.Now
Dim fieldTime As Date = SCHD_DTM.CurrentValue
Dim result As Double= (fieldTime - systemTime).TotalMinutes

If result <= 0.25 Then
    RowATTrs("style") = "background-color:Red"
ElseIf result > 0.25 & result < -0.5 Then
    RowATTrs("style") = "background-color:Yellow"
ElseIf result > 0.5 & result <= 2 Then
    RowATTrs("style") = "background-color:Green"
End If

但是,不确定是否fieldTime应该低于Date.Now. 然后交换变量(fieldTime - systemTime)

于 2013-01-15T15:54:55.180 回答
1

你可以使用 datediff 函数找出你想要的,

DateDiff(DateInterval.Minute, systemTime, fieldTime)

将返回一个 long 告诉您两个日期时间之间的分钟数。

于 2013-01-15T16:20:57.170 回答