我正在尝试做一个相当简单的任务但是我的经验是在.net而不是在vb6中。给出两个字符串(比如本例中的"10/17/94"
和"10/17/95"
)我想返回一个字符串表达式
X年
//Date_Due and Date_Time_Performed are strings in the mm/dd/yy format
Duration = (Year(CDate(Date_Due)) - Year(CDate(Date_Time_Performed))) & " years"
但是这给了我一个runtime error '13' Type Mismatch
。
有什么建议吗?
编辑: 这些答案都没有得到解决。必须将转换结果添加到“years”字符串。我需要字符串表示而不是int。
答案 0 :(得分:5)
尝试使用datediff
Duration = CStr(DateDiff("yyyy", CDate(Date_Due), CDate(Date_Time_Performed))) & " years"
答案 1 :(得分:0)
Duration = DateDiff("yyyy", d1, d2)
但是,为了避免基于区域设置的问题,您最好先将字符串手动转换为日期:
d1 = DateSerial(1900 + cint(right$(literal,2)), cint(left$(literal,2)), cint(mid$(literal,4,2)))
提供的日期总是mm / dd / yy。如果您使用的是与语言环境相关的日期格式,请使用CDate
函数。
答案 2 :(得分:0)
Duration = CStr(DateDiff("yyyy", Date_Time_Performed, Date_Due))
字符串“yyyy”以年为单位重新打开间隔。您也可以以其他单位返回间隔。