Excel时间加减函数TMC
女史箴图作者-电脑的作用
Function TMC(time_text, minu)
'时间格式:2012-1-11 16:28:14
Dim t2, t3, t4,
y, m, d, zong_miao, miao1, miao2, shi, fen, miao,
shi1, fen1, miao3
Dim t1, m1
Dim flag1 As
Boolean
Dim flag2 As Boolean
t1 =
time_text
m1 = -minu
flag1 = False
flag2 = False
If IsNumeric(m1) Then
flag2 = True
End If
If IsDate(t1)
Then
flag1 = True
End If
If t1 =
TMC =
Exit Function
End If
y = Year(t1)
m = Month(t1)
d = Day(t1)
shi = Hour(t1)
fen = Minute(t1)
miao =
Second(t1)
If shi = 0 Then
shi = 24
End If
zong_miao = shi * 3600 + fen * 60 +
miao
miao1 = m1 * 60
miao2 = zong_miao -
miao1
shi1 = Int(miao2 3600)
fen1 =
Int((miao2 - shi1 * 3600) 60)
miao3 = miao2 -
shi1 * 3600 - fen1 * 60
If shi1 >=
24 Then
n = Int(shi1 24)
shi1 =
shi1 - n * 24
d = d + n
End If
If
m = 1 Or m = 3 Or m = 5 Or m = 7 Or m = 8 Or m =
10 Or m = 12 Then
If d > 31 Then
m = m
+ Int(d 31)
d = d Mod 31
End If
ElseIf m = 1 Or m = 3 Or m = 5 Or m = 7 Or m =
8 Or m = 10 Or m = 12 Then
If d > 30 Then
m = m + Int(d 31)
d = d Mod 30
End If
ElseIf m = 2 Then
If y Mod 4 = 0
And y Mod 100 = 0 And y Mod 400 = 0 Then
If d > 29 Then
m = m + Int(d 31)
d = d Mod 29
End If
Else
If d > 28 Then
m = m +
Int(d 31)
d = d Mod 28
End
If
End If
End If
If m > 12 Then
y = y + Int(m 12)
m = m Mod 12
End If
If Len(shi1) < 2 Then
shi1
=
End If
If Len(fen1) < 2 Then
fen1 =
End If
If Len(miao3) < 2
Then
miao3 =
End If
If shi
= 24 And shi1 <= 23 Then
d = d - 1
If d <=
0 Then
If m = 5 Or m = 7 Or m = 8 Or m =
10 Or m = 12 Then
d = 30
m
= m - 1
ElseIf m = 4 Or m = 2 Or m = 6 Or
m = 8 Or m = 9 Or m = 11 Or m = 1 Then
d = 31
m = m - 1
ElseIf m = 3
Then
If y Mod 4 = 0 And y Mod 100 = 0
And y Mod 400 = 0 Then
d = 29
m = m - 1
Else
d = 28
m = m - 1
End If
End If
End If
If m <= 0 Then
m = 12
y = y - 1
End If
End If
If m
< 10 Then
m =
End If
If d < 10 Then
d =
End If
t2 = y &
t3 =
shi1 &
t4 = t2 & t3
TMC = t4
End
Function