Datumsdifferenz Feiertage abziehen VB-NET InfoPath

  • Sonstige

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von INOPIAE.

    Datumsdifferenz Feiertage abziehen VB-NET InfoPath

    Hi leutz bin neu hier und kenne mich schlecht
    Wollt fragen wie es möglich ist bei vb feiertage abzziehen.
    Wochenende hab ich da schon irgendwie drin , klappt auch ^^.
    hab gehört das ich ne liste erstellen soll und dann ne abfrage zu dem zeitraum von bis machen soll.
    falls dann diese abfrage true ausfällt soll -1 des ergebnisses gerechnet werden.

    Könnte mir jemand nen konkretes beispiel fürn 1.11.2010 geben??
    hab gelesen ich soll irgendwie das intevall abfragen und wenn dannn das datum auftaucht soll er den -1 abziehen.
    wäre echt dankbar
    Das der code den ich bis jetzt habe :



    Visual Basic-Quellcode

    1. [code]Public Sub CTRL73_5_Clicked(ByVal sender As Object, ByVal e As ClickedEventArgs)
    2. Dim node_von As XPathNavigator = _
    3. MainDataSource.CreateNavigator().SelectSingleNode("/my:meineFelder/my:Datumsdifferenz/my:datum_von", NamespaceManager)
    4. Dim node_bis As XPathNavigator = MainDataSource.CreateNavigator().SelectSingleNode("/my:meineFelder/my:Datumsdifferenz/my:datum_bis", NamespaceManager)
    5. Dim node_diff As XPathNavigator = MainDataSource.CreateNavigator().SelectSingleNode("/my:meineFelder/my:Datumsdifferenz/my:differenz_tage", NamespaceManager)
    6. If node_von.Value.Length > 0 And node_bis.Value.Length > 0 Then
    7. Try
    8. Dim d_von, d_bis As Date
    9. d_von = Convert.ToDateTime(node_von.Value)
    10. d_bis = Convert.ToDateTime(node_bis.Value)
    11. Dim nDays As Long
    12. nDays = d_bis.Subtract(d_von).Days + 1
    13. Dim differenz_tage As String
    14. differenz_tage = IIf(nDays \ 7 > 0, _
    15. nDays - (nDays \ 7) * 2, nDays) - _
    16. IIf(Weekday(d_von, vbMonday) - 1 + nDays Mod 7 < 6, 0, _
    17. IIf(Weekday(d_von, vbMonday) - 1 + nDays Mod 7 = 6, 1, 2))
    18. node_diff.SetValue(differenz_tage)
    19. If node_diff.MoveToAttribute("nil", " http://www.w3.org/2001/XMLSchema-instance") Then
    20. node_diff.DeleteSelf()
    21. End If
    22. Catch ex As Exception
    23. 'keine Aktion, Berechnung abbrechen
    24. End Try
    25. End If
    26. End Sub
    27. End Class
    28. End Namespace
    [/code]
    Bevor du überhaupt etwas mit Feiertagen berechnen kannst, brauchst du tatsächlich eine Liste.
    Dann musst du natürlich wissen für welches Land du das brauchst.

    Für Ostern gibt es eine Formel. Die kannst du wahrscheinlich bei Wiki finden.
    (Soweit ich noch weiß: erster Sonntag nach dem Frühlingsvollmond)
    Viele andere Feiertage hängen nun irgendwie an Ostern dran. Das sind
    dann die Beweglichen. Karfreitag, Pfingsten etc.

    Weihnachten und co. ist natürlich auch klar, das sind dann die festen Feste.

    Ich nehme mal an unter "Abziehen" meinst du, dass du die Anzahl der
    auf Werktage fallenden Feiertage von den restlichen Werktagen abziehen
    willst, um auf die tatsächlichen Arbeitstage zu kommen.

    Dazu musst du natürlich auch erst mal testen, ob die Feiertage tatsächlich
    auf einen Werktag fallen.