Calculates the differences of date (against NOW) and return in English descriptive.
Like Last week, 3 months ago, next year, etc.
I used this one a lot in my websites and cannot believe that I have not included yet here. My bad.
Function DateDiff_En(OfDate)
Rett = "Same"
D1 = Now()
IsFuture = Sgn(D1 - OfDate) < 0
IsPast = Sgn(D1 - OfDate) > 0
WeekDays_En = "Sunday||Monday||Tuesday||Wednesday||Thursday||Friday||Saturday"
DateDiff_En = Rett
If Not IsPast And Not IsFuture Then Exit Function
If IsPast Then
YearsAway = DateDiff("yyyy", OfDate, D1)
MonthsAway = DateDiff("m", OfDate, D1)
WeeksAway = DateDiff("ww", OfDate, D1)
DaysAway = DateDiff("d", OfDate, D1)
HoursAway = DateDiff("h", OfDate, D1)
MinutesAway = DateDiff("n", OfDate, D1)
Rett = CInt(YearsAway) & " years ago"
If YearsAway < 2 Then Rett = "last year"
If YearsAway < 1 Then Rett = CInt(MonthsAway) & " months ago"
' If MonthsAway < 2 Then Rett = "last month"
If MonthsAway < 2 Then Rett = WeeksAway & " weeks ago"
If WeeksAway < 4 Then Rett = CInt(DaysAway) & " days ago"
If DaysAway > 30 Then Rett = "last month"
' If WeeksAway < 2 Then Rett = "last week"
If DaysAway < 14 Then Rett = "last week"
If DaysAway < 7 Then Rett = CutString3(WeekDays_En,Weekday(OfDate),"||")
If DaysAway < 2 Then Rett = "yesterday"
If DaysAway < 1 Then Rett = CInt(HoursAway) & " hours ago"
' If HoursAway < 24 Then Rett = CInt(HoursAway) & " hours ago"
If HoursAway < 14 Then Rett = CInt(HoursAway) & " hours ago"
If HoursAway < 2 Then Rett = "an hour ago"
If HoursAway < 1 Then Rett = MinutesAway & " minutes ago"
If MinutesAway < 60 Then Rett = MinutesAway & " minutes ago"
If MinutesAway < 2 Then Rett = "a minute or so ago"
ElseIf IsFuture Then
YearsAway = DateDiff("yyyy", D1, OfDate)
MonthsAway = DateDiff("m", D1, OfDate)
DaysAway = DateDiff("d", D1, OfDate)
HoursAway = DateDiff("h", D1, OfDate)
MinutesAway = DateDiff("n", D1, OfDate)
Rett = "in " & CInt(YearsAway) & " years"
If YearsAway < 2 Then Rett = "next year"
If YearsAway < 1 Then Rett = "in " & CInt(MonthsAway) & " months"
If MonthsAway < 2 Then Rett = "next month"
If MonthsAway < 1 Then Rett = "in " & CInt(DaysAway) & " days"
' If WeeksAway < 2 Then Rett = "next week"
If DaysAway < 2 Then Rett = "tomorrow"
If DaysAway < 1 Then Rett = "in " & CInt(HoursAway) & " hours"
If HoursAway < 2 Then Rett = "in an hour"
If HoursAway < 1 Then Rett = "in " & CInt(MinutesAway) & " minutes"
If MinutesAway < 2 Then Rett = "in a minute or so"
If MinutesAway < 1 Then Rett = "in " & CInt(SecondsAway) & " seconds"
If SecondsAway < 10 Then Rett = "in few seconds"
End If
DateDiff_En = Rett
End Function
Rett = "Same"
D1 = Now()
IsFuture = Sgn(D1 - OfDate) < 0
IsPast = Sgn(D1 - OfDate) > 0
WeekDays_En = "Sunday||Monday||Tuesday||Wednesday||Thursday||Friday||Saturday"
DateDiff_En = Rett
If Not IsPast And Not IsFuture Then Exit Function
If IsPast Then
YearsAway = DateDiff("yyyy", OfDate, D1)
MonthsAway = DateDiff("m", OfDate, D1)
WeeksAway = DateDiff("ww", OfDate, D1)
DaysAway = DateDiff("d", OfDate, D1)
HoursAway = DateDiff("h", OfDate, D1)
MinutesAway = DateDiff("n", OfDate, D1)
Rett = CInt(YearsAway) & " years ago"
If YearsAway < 2 Then Rett = "last year"
If YearsAway < 1 Then Rett = CInt(MonthsAway) & " months ago"
' If MonthsAway < 2 Then Rett = "last month"
If MonthsAway < 2 Then Rett = WeeksAway & " weeks ago"
If WeeksAway < 4 Then Rett = CInt(DaysAway) & " days ago"
If DaysAway > 30 Then Rett = "last month"
' If WeeksAway < 2 Then Rett = "last week"
If DaysAway < 14 Then Rett = "last week"
If DaysAway < 7 Then Rett = CutString3(WeekDays_En,Weekday(OfDate),"||")
If DaysAway < 2 Then Rett = "yesterday"
If DaysAway < 1 Then Rett = CInt(HoursAway) & " hours ago"
' If HoursAway < 24 Then Rett = CInt(HoursAway) & " hours ago"
If HoursAway < 14 Then Rett = CInt(HoursAway) & " hours ago"
If HoursAway < 2 Then Rett = "an hour ago"
If HoursAway < 1 Then Rett = MinutesAway & " minutes ago"
If MinutesAway < 60 Then Rett = MinutesAway & " minutes ago"
If MinutesAway < 2 Then Rett = "a minute or so ago"
ElseIf IsFuture Then
YearsAway = DateDiff("yyyy", D1, OfDate)
MonthsAway = DateDiff("m", D1, OfDate)
DaysAway = DateDiff("d", D1, OfDate)
HoursAway = DateDiff("h", D1, OfDate)
MinutesAway = DateDiff("n", D1, OfDate)
Rett = "in " & CInt(YearsAway) & " years"
If YearsAway < 2 Then Rett = "next year"
If YearsAway < 1 Then Rett = "in " & CInt(MonthsAway) & " months"
If MonthsAway < 2 Then Rett = "next month"
If MonthsAway < 1 Then Rett = "in " & CInt(DaysAway) & " days"
' If WeeksAway < 2 Then Rett = "next week"
If DaysAway < 2 Then Rett = "tomorrow"
If DaysAway < 1 Then Rett = "in " & CInt(HoursAway) & " hours"
If HoursAway < 2 Then Rett = "in an hour"
If HoursAway < 1 Then Rett = "in " & CInt(MinutesAway) & " minutes"
If MinutesAway < 2 Then Rett = "in a minute or so"
If MinutesAway < 1 Then Rett = "in " & CInt(SecondsAway) & " seconds"
If SecondsAway < 10 Then Rett = "in few seconds"
End If
DateDiff_En = Rett
End Function
OfDate
Views 92
Downloads 28
CodeID
DB ID