| |
VB.NET - Ein- und Umsteigerprüfe Datum ob es ein Feiertag ist | | | Autor: ERBRU | Datum: 27.12.20 12:14 |
| Hallo zusammen,
so prüfe ich ein Datum mit der Funktion DayofWeek auf Sa So ich möchte
Dim D As Date = DateFrom.Date.AddDays(i)
Dim anfang As Date
Dim ende As Date
Dim dauer As Long
'-----------------------------------------------------------------
anfang = D.Add(New TimeSpan(7, 30, 0))
ende = D.Add(New TimeSpan(16, 0, 0))
dauer = CLng(DateDiff("n", anfang, ende))
Dim pause As Integer = 45
Dim soll As Integer = 408
'-----------------------------------------------------------------
'Abfrage ob Datum schon vorhanden ist
If dt.Select("Tag = '" & D & "'").Count = 0 Then
Dim NewRow As DataRow = dt.NewRow
NewRow("ATag") = D.ToString("ddd")
NewRow("Tag") = D
If D.DayOfWeek = DayOfWeek.Saturday Or D.DayOfWeek = _
DayOfWeek.Sunday _
Then
NewRow("Beginn") = D.Add(New TimeSpan(0, 0, 0))
NewRow("Ende") = D.Add(New TimeSpan(0, 0, 0))
NewRow("Pause") = 0
NewRow("Anwesend") = 0
NewRow("SollAZ") = 0
NewRow("IstAZ") = 0
NewRow("Gleitzeit") = 0
NewRow("Bemerkung") = "WE"
Else
NewRow("Beginn") = D.Add(New TimeSpan(7, 30, 0))
NewRow("Ende") = D.Add(New TimeSpan(16, 0, 0))
NewRow("Pause") = pause
NewRow("Anwesend") = dauer
NewRow("SollAZ") = soll
NewRow("IstAZ") = dauer - pause
NewRow("Gleitzeit") = (dauer - soll) - pause
NewRow("Bemerkung") = "Anwesend"
End If
dt.Rows.Add(NewRow)
End If
Next nun möchte ich auch noch auf Feiertag prüfen und den dann in der NewRow("Bemerkung") eintragen.
wie geht das ? bzw wie gehe ich da vor ? | |
Re: prüfe Datum ob es ein Feiertag ist | | | Autor: ERBRU | Datum: 28.12.20 08:34 |
| Danke effeff,
das hatte ich schon gefunden
doch komme ich mit dem VB6 Code nicht klar.
viele Bugs drin
zBsp. hier ' Speziallfall: Februar (auf Schaltjahr prüfen)
Tage = Day(DateAdd("d", -1, X))
Day ist ein Typ und kann nicht als Ausdruck verwendet werden | |
Re: prüfe Datum ob es ein Feiertag ist | | | Autor: JangoF | Datum: 28.12.20 17:56 |
| Folgend Funktion liefert den Ostersonntag, alle beweglichen Feiertage sind damit berechenbar.
Private Function OsterSonntag(ByVal Jahr As Integer) As Date
' Function OsterSonntag gibt das Datum für den
' Ostersonntag des in Jahr übergebenen Jahres zurück.
Dim m As Integer
Dim n As Integer
Dim a As Integer
Dim b As Integer
Dim c As Integer
Dim d As Integer
Dim e As Integer
Dim Tag As Integer
Dim Monat As Integer
m = 23
n = 3
If Jahr > 1799 Then
n = 4
End If
If Jahr > 1899 Then
n += 1
m = 24
End If
If Jahr > 2099 Then
n += 1
End If
a = Jahr Mod 19
b = Jahr Mod 4
c = Jahr Mod 7
d = ((a * 19) + m) Mod 30
e = ((b * 2) + (c * 4) + (d * 6) + n) Mod 7
Tag = d + e + 22
If Tag > 31 Then
Tag -= 31
If (Tag = 26) Or ((Tag = 25) And (d = 28) And (a > 10)) Then
Tag -= 7
End If
Monat = 4
Else
Monat = 3
End If
Return DateSerial(Jahr, Monat, Tag)
End Function | |
Re: prüfe Datum ob es ein Feiertag ist | | | Autor: ERBRU | Datum: 28.12.20 20:03 |
| Danke JangoF,
ich möchte aus einem DTPDatumVon und DTPDatumBis datumse auswählen und in die Tabelle Arbeitszeit schreiben, dabei soll nicht nur auf Samstag, Sonntag geprüft werden sondern auch ob es ggf. ein Feiertag ist an dem nicht gearbeitet werden muss. Das soll automatisiert werden | |
Re: prüfe Datum ob es ein Feiertag ist | | | Autor: Manfred X | Datum: 30.12.20 02:59 |
| Hallo!
Die arbeitsfreien Tage sind in Deutschland regional (Länder) unterschiedlich geregelt.
Eine simple Automatisierung ist deshalb ohne Standort-Bezug nicht möglich.
Bei Logistik-Programmen ist jede Etappe der Wegstrecke zu beachten. | |
Re: prüfe Datum ob es ein Feiertag ist | | | Autor: ERBRU | Datum: 30.12.20 11:51 |
| also müsste man einen Standort-Bezug einbauen ?
und dann geht es wie weiter ?
oder lass ich lieber die Finger davon!
wenn es doch komplzierter ist als ich dachte | |
Re: prüfe Datum ob es ein Feiertag ist | | | Autor: Manfred X | Datum: 03.01.21 02:33 |
| Hallo!
Ich kann nicht beurteilen, ob regionale (konfessionelle) Feiertage
bei Dir eine bedeutsame Rolle spielen.
Die regionalen Feiertage (arbeitsfreien Tage) kann man den Kalendern
der nächsten Jahre entnehmen und sie in eine Datei oder Datenbank eintragen.
Alles weitere hängt von der beabsichtigten Funktionalität des Programms
ab.
Geht es um den aktuellen Standort des Programm-Anwenders oder um
Städte/Gemeinden auf die der Nutzer des Programms sich im Dialog bezieht
bzw. die er aus der Datenbank abfragt?
Eventuell sind Gebietsinformationen (Bundesland) zu den Datensätzen
(mit Ortsbezug, z.B. Adressen) in der Datenbank zu speichern. | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
sevISDN 1.0
Überwachung aller eingehender Anrufe!
Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Weitere InfosTipp des Monats Neu! sevDTA 3.0 Pro
SEPA mit Kontonummernprüfung
Erstellen von SEPA-Dateien mit integriertem BIC-Verzeichnis und Konto- nummern-Prüfverfahren, so dass ungültige Bankdaten bereits im Vorfeld ermittelt werden können. Weitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|