vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: Nettoarbeitstage mit Eingabe einer Dezimalzahl berechnen 
Autor: Manfred X
Datum: 17.03.13 19:47

Hallo!

Wenn Du den 15.3.2013 (Freitag) als Startdatum eingibst,
und den 21.3. (Donnerstag) als Zieldatum willst,
wären das insgesamt 5 Werk-Tage.

Wie definierst Du eine Projektdauer von 3-4 bzw. 6-8 Tagen?

Im Beispiel wird ein Startdatum angegeben und eine
Projektdauer (in Tagen), wobei der erste und letzte
Arbeitstag einbezogen ist. Feiertage kannst Du über
die oben angegebene Klasse abfragen und in eine
List(of Date) eintragen. Diese Werte sind beim
Zählen der Arbeitstage zusätzlich zu beachten.

Public Class frmWerkTage2
 
    'Labels
    Dim lblStart As New Label With _
        {.Parent = Me, .Width = 200, .Text = "Projekteingang: "}
 
    Dim WithEvents dtpStart As New DateTimePicker With _
        {.Parent = Me, .Top = 40, _
        .Width = 200, .Value = CDate(Now)}
 
    Dim lblDauer As New Label With _
        {.Parent = Me, .Width = 100, .Left = 250, .Top = 40, _
         .Text = "Projekt-Dauer: "}
 
    Dim WithEvents txtDauer As New TextBox With _
        {.Parent = Me, .Width = 100, .Left = 350, .Top = 40, _
        .Text = "3"}
 
    'Berechnungsbutton
    Dim WithEvents btnCompute As New Button With _
        {.Parent = Me, .Top = 100, _
        .Width = 200, .Text = "Berechne Datum Projektende"}
 
    'Anzeige des Ergebnisses
    Dim lblWerktage As New Label With _
        {.Parent = Me, .Top = 100, .Left = 250, _
        .Width = 200, .Text = "", .BackColor = Color.LightGray}
 
    Private Sub btnCompute_Click(ByVal sender As Object, _
            ByVal e As System.EventArgs) Handles btnCompute.Click
 
        Dim dt As Date = DateValue(dtpStart.Value.ToString)
        Dim dauer As Integer
        If Not Integer.TryParse(txtDauer.Text, dauer) OrElse dauer < 1 Then
            MsgBox("Fehlerhafte Angabe zur Projektdauer (mind. 1 Tag)")
        End If
 
        Dim c As Integer
        Do
            Dim wochentag As Integer = Microsoft.VisualBasic.Weekday(dt)
            'Unter Annahme: 1 = Sonntag, 7 = Samstag
            If wochentag > 1 And wochentag < 7 Then
                c += 1
            End If
            dt = dt.AddDays(1)
        Loop While c < dauer
 
        'Annahme: Datum letzter Projekttag = Datum Projektende
        lblWerktage.Text = "Projektende: " & CStr(dt.AddDays(-1))
    End Sub
 
    Private Sub dtp_ValueChanged(ByVal sender As Object, ByVal e As  _
      System.EventArgs) _
        Handles dtpStart.ValueChanged, txtDauer.TextChanged
        lblWerktage.Text = ""
    End Sub
 
    Private Sub frmWerkTage2_Load(sender As System.Object, _
        e As System.EventArgs) Handles MyBase.Load
        Me.Width = 600
    End Sub
End Class
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Nettoarbeitstage mit Eingabe einer Dezimalzahl berechnen2.833weiß nix16.03.13 12:11
Re: Nettoarbeitstage mit Eingabe einer Dezimalzahl berechnen2.109sv0001016.03.13 14:25
Re: Nettoarbeitstage mit Eingabe einer Dezimalzahl berechnen2.019weiß nix16.03.13 17:12
Re: Nettoarbeitstage mit Eingabe einer Dezimalzahl berechnen2.012Manfred X16.03.13 14:55
Re: Nettoarbeitstage mit Eingabe einer Dezimalzahl berechnen2.078weiß nix16.03.13 17:25
Re: Nettoarbeitstage mit Eingabe einer Dezimalzahl berechnen2.296Manfred X16.03.13 18:26
Re: Nettoarbeitstage mit Eingabe einer Dezimalzahl berechnen1.926weiß nix17.03.13 18:12
Re: Nettoarbeitstage mit Eingabe einer Dezimalzahl berechnen2.001Manfred X17.03.13 19:47
Re: Nettoarbeitstage mit Eingabe einer Dezimalzahl berechnen1.905weiß nix18.03.13 18:11
Re: Nettoarbeitstage mit Eingabe einer Dezimalzahl berechnen2.057Manfred X18.03.13 19:08
Re: Nettoarbeitstage mit Eingabe einer Dezimalzahl berechnen1.886weiß nix19.03.13 18:28
Re: Nettoarbeitstage mit Eingabe einer Dezimalzahl berechnen1.996Manfred X19.03.13 19:54
Re: Nettoarbeitstage mit Eingabe einer Dezimalzahl berechnen2.058weiß nix20.03.13 18:45
Re: Nettoarbeitstage mit Eingabe einer Dezimalzahl berechnen1.900Manfred X20.03.13 19:15
Re: Nettoarbeitstage mit Eingabe einer Dezimalzahl berechnen1.909weiß nix23.03.13 16:35
Fortsetzung2.053Manfred X19.03.13 19:55

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

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 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