我正在寻找一个可以在持续时间文本框中输入持续时间段编号时自动检测到期日期的功能。由于所有月份的结尾都不是相同的日期编号(即31以30结束的某个日期),因此我感到颇具挑战。
注意:如果让用户输入3,则该功能应该能够自动计算到明年,而在2018年11月,这意味着持续时间将增加到2019年1月 见下图
Dim start_date As Date = dtpStart.Value
Dim totalDays As Integer = 3 * 30
Dim ts As TimeSpan = start_date.Add(totalDays)
Dim end_date As Date = ts
我已经尝试了上面的方法,但是它给我一个错误:“不能将整数类型的值转换为system.TimeSpan。”
答案 0 :(得分:1)
如果我对您的理解是正确的,则如果用户输入3,则要在开始日期后30天提前3次。
Dim start_date = dtpStart.Value
Dim end_date = start_date.AddDays(3* 30)
就功能而言,您可以:
private function AddDays(Byval start_date as Date, Byval amount as integer) as Date
Dim end_date = start_date.AddDays(amount)
return end_date
end function
用法为:
Dim new_date = AddDays(dtpStart.Value, 3*30)