level 2
Txt4.Text = DateDiff("d", Time(), Txt3.Text)
想计算工龄,问题1:在date这个公式里时间是什么格式的,也就是txt3.text怎样的格式才能和Time()进行计算?
问题2:怎样才能变成几年几月这样的,如果算出天数来直接除以365天,显然是不准确的
2022年04月26日 02点04分
1
level 15
0.要计算工龄,那肯定应该用日期Date来计算啊,Time显然是不对的
1.只要是能识别的格式都可以,即IsDate(Txt3.Text)的值为True的都行,比如:
"2022/4/26"
"2022-4-26"
"2022年4月26日"
都是可以识别的
另外,这个计算是第二个减第一个(2楼说错了),所以你应该写成:
DateDiff("d", Txt3.Text, Date)
2.这个有点技术难度,可以考虑用DateDiff分步计算:
Dim dt As Date '存储日期的变量
dt = CDate(Txt3.Text)
y = DateDiff("yyyy", dt, Date) '计算年份差
dt = DateAdd("yyyy", y, dt) '在日期dt中加上该年份差
If dt > Date Then '如果超过了今天的日期
y = y - 1 '表示多算了一年,减去1
dt = DateAdd("yyyy", -1, dt) '从dt中减去一年
End If
m = DateDiff("m", dt, Date) '计算月份差
dt = DateAdd("m", m, dt) '在日期dt中加上该月份差
If dt > Date Then '如果超过了今天的日期
m = m - 1 '表示多算了一个月,减去1
dt = DateAdd("m", -1, dt) '从dt中减去一个月
End If
d = DateDiff("d", dt, Date) '计算最后的天数差
Txt4.Text = y & "年" & m & "月" & d & "日"
2022年04月26日 03点04分
3