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 14.06.2002

Diese Seite wurde zuletzt aktualisiert am 14.06.2002
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...

Vergangene Wochentage

Zurück...


Anzeige

(-hg) mailto:hg_recentweekday@aboutvb.de

Sie möchten gerne das Datum beispielsweise vom vergangenen Dienstag ermitteln? Oder das Datum vom vergangenen Dienstag vor einer Woche, vor zwei Wochen oder noch weitere Wochen zurück liegend? Oder den letzten Dienstag vor einem beliebigen gegebenen Datum?

Ermitteln sie dazu einfach die Differenz der Wochentags-Nummern (Konstanten-Enumeration vbDayOfWeek) und ziehen sie sie von dem gegebenen Datum ab. Damit die Differenz nicht kleiner als Null wird, addieren sie vorher 7 (eine volle Woche) und reduzieren Sie den Bereich anschließend mit einer Modulo-Division durch 7 wieder auf eine Woche. Sollte die Differenz Null betragen, könnten Sie entscheiden, ob damit der gleiche Tag wie das gegebene Datum gemeint sein soll, oder ob tatsächlich der vorhergehende gleiche Wochentag gemeint ist. Entsprechend der Aufgabenstellung sollte sich aber eine solche Entscheidung erübrigen - setzen Sie also in diesem Fall die Differenz wieder auf eine volle Woche, also 7, herauf. Um die im Wochenabstand weiter zurück liegenden entsprechenden Wochentage zu erhalten, addieren Sie die entsprechende Wochenzahl mit 7 multipliziert. Den so ermittelten Differenzwert subtrahieren Sie nun einfach vom gegebenen Datumswert und erhalten so das gesuchte Datum.

Die Funktion RecentWeekday fasst diese Berechnungen zusammen. Die Anzahl der zurück liegenden Wochen können Sie optional im Parameter WeeksBack übergeben. Im optionalen Parameter NoTime geben Sie an, ob ein eventuell vorhandener Zeit-Anteil des übergebenen Ausgangsdatums erhalten bleiben soll oder nicht (Voreinstellung ist True - der Zeit-Anteil wird abgeschnitten).

Public Function RecentWeekday(ByVal GivenDate As Date, _
 ByVal WkDay As VbDayOfWeek, _
 Optional ByVal WeeksBack As Integer, _
 Optional ByVal NoTime As Boolean = True) As Date

  Dim nDiff As Integer
  
  If NoTime Then
    GivenDate = CDate(CLng(CDbl(GivenDate)))
  End If
  nDiff = (Weekday(GivenDate) - WkDay + 7) Mod 7
  If nDiff = 0 Then
    nDiff = 7
  End If
  RecentWeekday = GivenDate - (nDiff - (WeeksBack * 7))
End Function

Modul modRecentWeekDay (recentweekday.zip - ca. 0,7 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