Εμφάνιση ενός μόνο μηνύματος
  #3  
Παλιά 24-11-20, 12:24
γιώργοςΚ Ο χρήστης γιώργοςΚ δεν είναι συνδεδεμένος
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2007, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 02-04-2013
Περιοχή: Κύπρος
Μηνύματα: 738
Προεπιλογή

Παράθεση:
Αρχική Δημοσίευση από pctechdr Εμφάνιση μηνυμάτων
Function fAge(dteStart As Variant, dteEnd As Variant) As Variant
'*******************************************
'Purpose: Accurately return the difference
' between two dates, expressed as
' years.months.days
'Coded by: raskew (from MS Access forum)
'Inputs: From debug (immediate) window
' 1) ? fAge(#12/1/1950#, #8/31/2006#) 'Calculate btw 2 specific dates
' 2) ? fAge(#12/30/2005#, Date()) ' Calculate as of today's date
'*******************************************
Dim intHold As Integer
Dim dayhold As Integer

'correctly return number of whole months difference
'the (Day(dteEnd) < Day(dteStart)) is a Boolean statement
'that returns -1 if true, 0 if false
intHold = DateDiff("m", dteStart, dteEnd) + (Day(dteEnd) < Day(dteStart))

'correctly return number of days difference
If Day(dteEnd) < Day(dteStart) Then
dayhold = DateDiff("d", dteStart, DateSerial(Year(dteStart), Month(dteStart) + 1, 0)) + Day(dteEnd)
Else
dayhold = Day(dteEnd) - Day(dteStart)
End If

fAge = LTrim(Str(intHold \ 12)) & " years " & LTrim(Str(intHold Mod 12)) & " months " & LTrim(Str(dayhold)) & " days"

End Function
Χρίστο γεία σου,

Πρώτα από όλα σε ευχαριστω για την λϋση που πρωτείνεις. Ωστόσο, θα ήθελα μια πιο απευθείας λύση μέσα απο ερώτημα αν ειναι δυνατό....

Σε ευχαριστω
Απάντηση με παράθεση