| |
VB.NET - Ein- und UmsteigerGeburstage | | | Autor: ERBRU | Datum: 26.01.22 18:26 |
| ich versuche mit der Abfrage eine Liste nach aktuellen Geburstagen in der aktuellen Woche passt noch nicht
wer kann da helfen ?
Private Sub Anzahl_Ereignisse()
Dim von_Datum = Today.AddDays(7)
If Me.ListenDB.Geburtstagsliste.Rows.Count = 0 Then Return
' Abfrage
Dim AbfrageG As System.Data.EnumerableRowCollection(Of _
GeburtstagslisteRow)
AbfrageG = From Reihe In Me.ListenDB.Geburtstagsliste
Where Reihe.RowState <> DataRowState.Deleted AndAlso _
Reihe.IsGeburtstagNull = False AndAlso _
Reihe.Geburtstag = von_Datum _
Select Reihe
Dim anzahlDatensaetze As Integer = AbfrageG.Count
If anzahlDatensaetze <> 1 Then
MessageBox.Show(String.Concat(anzahlDatensaetze.ToString & "" & _
"Aktuelle Geburstage"))
Else
MessageBox.Show(String.Concat(anzahlDatensaetze.ToString & "" & _
"Aktueller Geburstag"))
End If
End Sub | |
Re: Geburstage | | | Autor: ERBRU | Datum: 27.01.22 12:45 |
| Danke HenryV,
habe es nun so gemacht! wenn jemand eine schönere Variante hat bitte senden, die Geburstage sollen in eine neue Liste Geburtstage: Heute, Morgen und Übermorgen
geht das auch ?
Private Sub Button2_Click_1(sender As Object, e As EventArgs) Handles _
Button2.Click
For Each rwKontakt In ListenDB.Geburtstagsliste
Dim NL As String = Environment.NewLine
''-----------------------------------------------------------------_
---------
Dim nextBirthday = GetNextBirthDay(rwKontakt.Geburtstag)
Dim xx = DateTime.Now
Dim heute As DateTime = New DateTime(xx.Year, xx.Month, xx.Day) '
' Datum ohne Zeit
Dim geburtstagskind As DateTime = New DateTime(heute.Year, _
nextBirthday.Month, nextBirthday.Day) ' das selbe Jahr
Select Case (geburtstagskind.Subtract(heute).Days)
Case 0 : MessageBox.Show("Heute hat, " & rwKontakt.Vorname & "," & _
"" & rwKontakt.Nachname & NL _
& "Geburtstag", "Info!", MessageBoxButtons.OK, _
MessageBoxIcon.Information)
Case 1 : MessageBox.Show("Morgen hat, " & rwKontakt.Vorname & _
", " & rwKontakt.Nachname & NL _
& "Geburtstag", "Info!", MessageBoxButtons.OK, _
MessageBoxIcon.Information)
Case 2 : MessageBox.Show("Übermorgen hat, " & rwKontakt.Vorname _
& ", " & rwKontakt.Nachname & NL _
& "Geburtstag", "Info!", MessageBoxButtons.OK, _
MessageBoxIcon.Information)
End Select
Next
End Sub | |
Re: Geburstage | | | Autor: HenryV | Datum: 28.01.22 15:42 |
| Deine Variante könnte auch so aussehen
Dim TxtWann As String() = New String() {"Heute", "Morgen", "Übermorgen"}
For Each rwKontakt In ListenDB.Geburtstagsliste
Dim diffDOY As Integer = New Date(Date.Now.Year, _
rwKontakt.Geburtstag.Month, rwKontakt.Geburtstag.Day).DayOfYear - _
Date.Now.DayOfYear
If diffDOY < 3 AndAlso diffDOY >= 0 Then
MessageBox.Show(TxtWann(diffDOY) & " hat " & rwKontakt.Vorname & " " & _
rwKontakt.Nachname & "Geburtstag", "Info!", MessageBoxButtons.OK, _
MessageBoxIcon.Information)
End If
Next Zitat: | | die Geburstage sollen in eine neue Liste Geburtstage: Heute, Morgen und Übermorgen
geht das auch ? | |
Ja sollte gehen. Aber wie soll die Liste den aussehen?
Gibt es eine oder drei neue Listen?
Welchen Daten-Type der Liste möchtest du? (DataTable, Array, List(of), ...)
Welche Daten soll in die Liste? (Name, Geburtstag, ...)
Hier einmal ein Code-Grundgerüst
For Each rwKontakt In ListenDB.Geburtstagsliste
Dim diffDOY As Integer = New Date(Date.Now.Year, rwKontakt.Geburtstag.Month, _
rwKontakt.Geburtstag.Day).DayOfYear - Date.Now.DayOfYear
Select Case diffDOY
Case 0 : 'Hier Liste für Heute befüllen
Case 1 : 'Hier Liste für Morgen befüllen
Case 2 : 'Hier Liste für Übermorgen befüllen
Case Else
End Select
Next | |
Re: Geburstage | | | Autor: ERBRU | Datum: 28.01.22 17:52 |
| Hallo HenryV
fast habe das mal ausprobiert, hat nicht ganz funktioniert ich speichere das Datum als String
darum bringt er mir den Fehler, Month ist kein Member von String, Day ist kein Member von String ...
Schade
Die Liste soll tatsächlich so aussehen:
Bernd, hat Heute Geb
Hans, hat Morgen Geb
usw.
es sollen nicht drei Fenster aufpoppen
Dim TxtWann As String() = New String() {"Heute", "Morgen", "Übermorgen"}
For Each rwKontakt In ListenDB.Geburtstagsliste
Dim diffDOY As Integer = New Date(Date.Now.Year, _
rwKontakt.Geburtstag.Month, _
rwKontakt.Geburtstag.Day).DayOfYe_
ar - _
Date.Now.DayOfYear
If diffDOY < 3 AndAlso diffDOY >= 0 Then
MessageBox.Show(TxtWann(diffDOY) & " hat " & rwKontakt.Vorname _
& " " & _
rwKontakt.Nachname & "Geburtstag", "Info!", _
MessageBoxButtons.OK, _
MessageBoxIcon.Information)
End If
Next | |
Re: Geburstage | | | Autor: HenryV | Datum: 31.01.22 12:44 |
| Dann musst du den String zuerst in ein Datum konvertieren.
Der einfache Weg ist mit CDate(), der sichere Weg ist mit Parsen
Dim NextBDaysListe As New List(Of String)
Dim TxtWann As String() = New String() {"heute", "morgen", "übermorgen"}
For Each rwKontakt In ListenDB.Geburtstagsliste
Dim NextGebDatum As Date = CDate(rwKontakt.Geburtstag) 'String zu Date
' konvertierung
Dim diffDOY As Integer = New Date(Date.Now.Year, NextGebDatum.Month, _
NextGebDatum.Day).DayOfYear - Date.Now.DayOfYear
If diffDOY < 3 AndAlso diffDOY >= 0 Then
NextBDaysListe.Add(rwKontakt.Vorname & " " & rwKontakt.Nachname & " hat" & _
"" & TxtWann(diffDOY) & "Geburtstag")
End If
Next
MessageBox.Show(String.Join(Environment.NewLine, NextBDaysListe), "Info!", _
MessageBoxButtons.OK, MessageBoxIcon.Information) | |
Re: Geburstage | | | Autor: ERBRU | Datum: 31.01.22 14:42 |
| Danke HenryV,
ich habe es so probiert, hat auch funktioniert
Dim _birthday As Date = Convert.ToDateTime( _
rwKontakt.Geburtstag).ToShortDateString habe mich für deine Variante entschieden.
Danke! | |
Re: Geburstage | | | Autor: Manfred X | Datum: 31.01.22 16:23 |
| Hallo!
Interessant.
Du erzeugst einen String aus einem DateTime-Wert,
um den auf eine DATE-Variable zuzuweisen. | |
Re: Geburstage | | | Autor: ERBRU | Datum: 31.01.22 16:28 |
| mir viel halt nichts anderes ein, wie gesagt die Variante HenryV funktioniert | |
Re: Geburstage | | | Autor: effeff | Datum: 31.01.22 18:41 |
| Wo kommt Deine Liste eigentlich her? Aus einer Datenbank? Dann kannst Du diese doch direkt nach einem Datum abfragen...
EALA FREYA FRESENA | |
Re: Geburstage | | | Autor: ERBRU | Datum: 01.02.22 11:26 |
| Hallo effeff
Datum abfragen ?
die Daten kommen aus einer Datatable, Dataset
die Liste sieht doch Dank HenryV gut aus oder ?
ich hätte Sie gern anders sortiert gehabt, aber ok
alle Heute
Jan
Karl
usw.
alle morgen
Frank
Maria
usw.
alle übermorgen
https://www.directupload.net/file/d/6446/ibqd8hlo_png.htm | |
Re: Geburstage | | | Autor: effeff | Datum: 01.02.22 14:26 |
| //die Daten kommen aus einer Datatable, Dataset//
Und wo kommen die Daten nun wieder her? Doch aus einer Datenbank? Was hindert Dich an einer weiteren Abfrage, die Du dann von mir aus wieder in Dein DataSet einbindest?
EALA FREYA FRESENA | |
| 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 |
|
|
vb@rchiv CD Vol.6 vb@rchiv Vol.6
Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
Online-Update-Funktion Entwickler-Vollversionen u.v.m.Jetzt zugreifen Tipp des Monats März 2024 Dieter OtterUTF-8 Konvertierung von Dateien und StringsVB6 selbst verfügt über keine Funktionen zur UTF-8 Konvertierung von Daten. Mit Hilfe des ADODB.Stream-Objekts lassen sich diese fehlenden Funktionen aber schnell nachrüsten. sevOutBar 4.0
Vertikale Menüleisten á la Outlook
Erstellen von Outlook ähnlichen Benutzer- interfaces - mit beliebig vielen Gruppen und Symboleinträgen. Moderner OfficeXP-Style mit Farbverläufen, Balloon-Tips, u.v.m. Weitere Infos
|