How to compare/calculate time values in vb.net? -
so have datetimepicker formatted pick/show time values. if pick time before specific time, say, 6 pm, label should "undertime", otherwise should "overtime". want find timespan difference between picked time , 6 pm.
i've tried these codes, didn't work wanted:
if tp.value > #6:00:00 pm# label1.text = "overtime: " & (tp.value - #6:00:00 pm#).tostring else label1.text = "undertime: " & (#6:00:00 pm# - tp.value).tostring end if
use timespan instead of datetime. problem date has time part of 18 correct, it's date part's year 0 (since date literal doesn't contain date-part it's initialized default date) lower datetimepicker's date.
so use timespan , compare datetime.timeofday timespan:
dim time = timespan.fromhours(18) if tp.value.timeofday > time label1.text = "overtime: " & (tp.value.timeofday - time).tostring else label1.text = "undertime: " & (tp.value.timeofday - time).tostring end if a timespan has no am/pm-designation since it's 24h based. if want format hh:mm-format can use timespan.tostring:
dim diff timespan = tp.value.timeofday - time dim msg = string.format("{0}: {1}", if(diff > timespan.zero, "overtime", "undertime"), diff.tostring("hh\:mm")) label1.text = msg this replaces of code above.
Comments
Post a Comment