vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 17 bzw. 24 Entwickler-Vollversionen zum unschlagbaren Preis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

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

VB.NET - Ein- und Umsteiger
Beispiel: Berechnung für Geburtstage 
Autor: Manfred X
Datum: 20.08.17 08:24

Hallo!

Nutze cDatatableCSV in der "Originalversion".

Beispiel für den Inhalt der CSV-Datei:

Hans;31.3.1946
Günther;12.5.1982
Willy;26.5.2010
Peter;1.8.2017

Public Class frmExpressionColumn
 
    Dim WithEvents btnLoad As New Button With _
        {.Parent = Me, .Text = "Laden"}
 
    Dim dt As cDataTableCSV, bs As New BindingSource
 
    Dim dgv As New DataGridView With _
        {.Parent = Me, .Top = 50, .Width = 300, _
         .DataSource = bs, .ColumnHeadersHeight = 40}
 
 
    Private Sub btnLoad_Click(sender As Object, _
                              e As System.EventArgs) Handles btnLoad.Click
 
        If dt IsNot Nothing Then
            'geladene Tabelleninstanz entsorgen
            dt.Clear() : dt.Dispose() : dt = Nothing
        End If
        bs.DataSource = Nothing
 
        dt = New cDataTableCSV
 
        Dim AlterInTagen As String = _
            "AlterInTagen (am " & Today.ToString("dd.MM.yy") & ")"
        Const TageBisGeburtstag As String = "TageBisGeburtstag"
 
        If Not dt.LoadFile _
            ("C:\daten\birthday.csv", System.Text.Encoding.UTF8) Then
 
            MsgBox("Datei konnte nicht geladen werden", MsgBoxStyle.Exclamation)
        Else
            'Spaltenbezeichnung anpassen
            dt.Columns(0).ColumnName = "Name"
            dt.Columns(1).ColumnName = "Geburtstag"
 
            'zusätzliche Spalte
            dt.Columns.Add(AlterInTagen, GetType(Integer))
            dt.Columns(AlterInTagen).AllowDBNull = True
 
            dt.Columns.Add(TageBisGeburtstag, GetType(Integer))
 
            Dim gt As Date
            For i As Integer = 0 To dt.Rows.Count - 1
               If Date.TryParse(dt.Rows(i)("Geburtstag").ToString, gt) Then
                  dt.Rows(i)(AlterInTagen) = _
                  (Today.Date.Ticks - gt.Date.Ticks) / TimeSpan.TicksPerDay
 
                  'nächste Geburtstagsfeier im aktuellen oder im nächsten Jahr 
                  Dim gta As Date = New Date(Today.Year, gt.Month, gt.Day)
                  If gta < Today.Date Then gta = gta.AddYears(1)
 
                  dt.Rows(i)(TageBisGeburtstag) = _
                  (gta.Date.Ticks - Today.Date.Ticks) / TimeSpan.TicksPerDay
                Else
 
                    'ungültiger Eintrag in Spalte Geburtstag
                    dt.Rows(i)(AlterInTagen) = DBNull.Value
                    dt.Rows(i)(TageBisGeburtstag) = DBNull.Value
                End If
            Next i
 
            'Datenbindung erstellen
            bs.DataSource = dt
        End If
 
    End Sub
End Class


Beitrag wurde zuletzt am 20.08.17 um 08:25:58 editiert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Datediff berechnen1.117Orwell14.08.17 23:02
Re: Datediff berechnen578sv0001015.08.17 17:59
Beispiel: Berechnung für Geburtstage536Manfred X20.08.17 08:24

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-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