2012-03-16 4 views
0

다음 timespan 함수를 사용하여 올바르게 작동하는 두 날짜 사이의 일 수를 계산했습니다.asp.net timespan - 0.5 (반일)

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입니다. "0.5의 TS = (- - DTSTART DTEND)"

답변

1

tsTimeSpan 값 수정하는 방법에 대한

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) 

어떤 제안하지만 난에 나에게 그 오류를 말하는 파란색 선을 얻고있다. TimeSpan에서 0.5를 뺄 수는 없습니다.이 경우에는 원하는 것을 알고 있지만, 기본적으로 "일"이 올바른 단위가되는 이유는 무엇입니까? 명시 적으로하지만 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