Время работы asp.net - 0,5 (полдня) - PullRequest
0 голосов
/ 17 марта 2012

Я использовал следующую функцию timepan для определения количества дней между двумя датами, которое работает правильно.

    Dim dtStart As Date = txtHStart_Date.Text
    Dim dtEnd As Date = txtHEnd_Date.Text

    Dim ts As TimeSpan = dtEnd - dtStart  

    txtNoofDays.Text = ts.TotalDays.ToString()

    Console.WriteLine(ts.TotalDays)

Я сейчас попытался добавить флажок (как выбор на полдня). Если флажок установлен, я хочу, чтобы он был минус 0,5 от общего количества дней. Но я получаю синюю линию, сообщающую мне об ошибке на "ts = (dtEnd - dtStart) - 0.5"

    Dim dtStart As Date = txtHStart_Date.Text
    Dim dtEnd As Date = txtHEnd_Date.Text


    Dim ts As TimeSpan = dtEnd - dtStart


    For Each li As ListItem In CheckBoxList1.Items
        If li.Value = "Half Day" Then
        ts = (dtEnd - dtStart) - 0.5
    Else
            ts = dtEnd - dtStart
     End If

    Next
    txtNoofDays.Text = ts.TotalDays.ToString()

    Console.WriteLine(ts.TotalDays)

Любые предложения о том, как исправить

1 Ответ

1 голос
/ 17 марта 2012

ts - ваше TimeSpan значение. Вы не можете вычесть 0.5 из TimeSpan - я знаю, что вы хотите, чтобы это означало в этом случае, но почему «дни» будут правильной единицей по умолчанию? Вы можете явно вычесть 0,5 дня:

ts = (dtEnd - dtStart) - TimeSpan.FromDays(0.5)

Непонятно, почему вы перебираете все элементов, но только на самом деле , между прочим, используя последний элемент. Если бы вы планировали использовать количество дней для каждого элемента, у меня возникло бы желание вычесть после определения количества дней:

Dim days = (dtEnd - dtStart).TotalDays
If li.Value = "Half Day" Then
    days = days - 0.5
End If

' Use days here
...