两个日期之间的年数

时间:2010-08-31 19:55:19

标签: datetime vb6

我正在尝试做一个相当简单的任务但是我的经验是在.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。

3 个答案:

答案 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”以年为单位重新打开间隔。您也可以以其他单位返回间隔。

  • yyyy - 年
  • q - 季度
  • m - 月
  • d - Day
  • ww - 周
  • h - 小时
  • n - 分钟
  • s - 第二次