ABOUT Visual Basic Programmieren Programmierung Download Downloads Tips & Tricks Tipps & Tricks Know-How Praxis VB VBA Visual Basic for Applications VBS VBScript Scripting Windows ActiveX COM OLE API ComputerPC Microsoft Office Microsoft Office 97 Office 2000 Access Word Winword Excel Outlook Addins ASP Active Server Pages COMAddIns ActiveX-Controls OCX UserControl UserDocument Komponenten DLL EXE
Diese Seite wurde zuletzt aktualisiert am 13.12.2000

Diese Seite wurde zuletzt aktualisiert am 13.12.2000
Aktuell im ABOUT Visual Basic-MagazinGrundlagenwissen und TechnologienKnow How, Tipps und Tricks rund um Visual BasicActiveX-Komponenten, Controls, Klassen und mehr...AddIns für die Visual Basic-IDE und die VBA-IDEVBA-Programmierung in MS-Office und anderen AnwendungenScripting-Praxis für den Windows Scripting Host und das Scripting-ControlTools, Komponenten und Dienstleistungen des MarktesRessourcen für Programmierer (Bücher, Job-Börse)Dies&Das...

Themen und Stichwörter im ABOUT Visual Basic-Magazin
Code, Beispiele, Komponenten, Tools im Überblick, Shareware, Freeware
Ihre Service-Seite, Termine, Job-Börse
Melden Sie sich an, um in den vollen Genuss des ABOUT Visual Basic-Magazins zu kommen!
Informationen zum ABOUT Visual Basic-Magazin, Kontakt und Impressum

Zurück...

Vollendete Jahre

Zurück...


Anzeige

(-hg) mailto:hg_completeyears@aboutvb.de

Die Differenz in Jahren zwischen zwei Datumswerten lässt sich im Prinzip mittels der Visual Basic-Funktion MSDN Library - VB DateDiffDateDiff und der Angabe "yyyy" ermitteln. Das Ergebnis ergibt eine gerundete Anzahl der Jahre. Zur Bestimmung, wie viele tatsächlich vollendete Jahre zwischen zwei Datumswerten liegen, reicht das jedoch nicht.

Zunächst sollten Sie für die nachfolgenden Vergleiche die aufsteigende Reihenfolge der beiden Datumswerte sicherstellen. Die Anzahl der Jahre ermitteln Sie zunächst wieder mittels DateDiff. Hierfür bestimmen Sie jedoch für das zweite Datum zunächst den gleichen Tag relativ im Jahr. Dieses "künstliche" Hilfsdatum verwenden Sie nun noch zur Prüfung, welcher der beiden gegebenen Datums-Tage relativ im Jahr des zweiten gegebenen Datums der kleinere oder größere ist. Ist das Hilfsdatum das größere, ist das betrachtete Jahr noch nicht vollendet - die von DateDiff gelieferte Anzahl muss noch um 1 verringert werden.

Das funktioniert auch problemlos, wenn einer der beiden Datumswerte in einem Schaltjahr liegt. Es funktioniert selbst dann, wenn einer der beiden Tage ein 29. Februar sein sollte und der andere nicht in einem Schaltjahr liegt - von der Regel ausgehend, dass im Falle eines 29. Februar beim ersten Datum und einem 28. Februar beim zweiten Datum ein Jahr noch nicht, und einem 1. März beim zweiten Datum ein Jahr als vollendet gilt. In umgekehrter Richtung gilt die Regel, wenn das zweite Datum ein 29. Februar ist. Sind beide Tage ein 29. Februar, spielt es sowieso keine Rolle.

Public Function CompleteYears(ByVal Date1 As Date, Date2 As Date) _
 As Integer

  Dim nDate1 As Date
  Dim nDate2 As Date
  Dim nYears As Integer
  
  If Date1 <= Date2 Then
    nDate1 = Date1
    nDate2 = Date2
  Else
    nDate1 = Date2
    nDate2 = Date1
  End If
  nYears = DateDiff("yyyy", nDate1, nDate2)
  If DateSerial(Year(nDate2), Month(nDate1), Day(nDate1)) _
   <= nDate2 Then
    CompleteYears = nYears
  Else
    CompleteYears = nYears - 1
  End If
End Function

Falls Sie die Jahresvollendung allerdings stundengenau benötigen sollten, wird es komplizierter, vor allem wegen der Schaltjahre. Doch das überlasse ich Ihnen - lediglich einen interessanten und informativen Link habe ich dazu für Sie herausgesucht: http://www.fh-aachen.de/fachhochschule/990219geburtstag.htmlhttp://www.fh-aachen.de/fachhochschule/990219geburtstag.html


Modul modCompleteYears (modCompleteYears.bas - ca. 0,8 KB)


Artikel
Zum Download-Bereich dieses Artikel
Mail an den Autor dieses Artikels

KnowHow
Zur KnowHow-Übersicht

KnowHow-Themen
Themen - Allgemeines
Themen - Entwicklungsumgebung (VB-IDE)
Themen - Forms
Themen - Steuerelemente (Controls)
Themen - Grafik
Themen - Dateien
Themen - UserControls
Themen - Einsteiger-Tipps
Themen - Wussten Sie...?

Übersicht nach Titeln in alphabetischer Reihenfolge
Übersicht nach Erscheinungsdatum

Schnellsuche



Zum Seitenanfang

Copyright © 1999 - 2017 Harald M. Genauck, ip-pro gmbh  /  Impressum

Zum Seitenanfang

Zurück...

Zurück...

Download Internet Explorer