Datum und Zeit

  • VB.NET

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von jkk.

    Datum und Zeit

    Guten Morgen,

    hat jemand einen Tipp bei der Hand wie ich folgenden VB.Classic Code nach VB.Net übersetzen kann:

    Dim Datum As Double
    Dim TestZeit as String

    Testzeit="12:34"
    Datum = DateValue(Now) + TimeValue(TestZeit)

    Als Ergebnis brauch ich eine fortlaufende eindeutige Datumszahl (inkl. Uhrzeit). Unter VB.Classic ergab das eine Zahl in etwa 34156,48569 die man mit FORMAT wieder aufbröseln konnte.

    Schon mal Danke im voraus!

    Hoernchen schrieb:

    die man dann zb: wunderbar sortieren kann.

    Man kann auch den Typ "Date" wunderbar sortieren. Man kann ALLES wunderbar sortieren, was IComparable implementiert ...
    WENN du schon den Schritt von Classic nach .Net machst, solltest du alte "Zöpfe" gleich abschneiden und nicht bis Sankt Nimmerlein weiterführen.

    Man kann ein Date problemlos in eine Zahl umwandeln (Long), aber da das eher selten notwendig ist ...
    Grundlagen:
    Man kann auch andere Datentypen als Double der Größe nach vergleichen.
    Die Zeiten, wo Datümmer vor dem Komma und Uhrzeiten nach dem Komma stehen, sind soeben abgelaufen. :D

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. Dim dat1 As DateTime = DateTime.Now
    3. Dim dat2 As DateTime = dat1.AddHours(1)
    4. If dat2 > dat1 Then
    5. MessageBox.Show("größer")
    6. Else
    7. MessageBox.Show("kleiner")
    8. End If
    9. End Sub
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    OK ... machen wir es konkreter: ich habe ein DataGriedView (ungebunden). Da steht Spalte(0) ein Datum und Spalte(1) die Uhrzeit. Ein sortieren nach Datum UND Uhrzeit ist über die Spaltenköpfe nicht möglich. Also meine Idee: verstecke ich eine Spalte und schreibe in diese einen Wert der Datum und Uhrzeit entspricht. Über einen Button in der Toolbar kann man das Gitter korrekt nach "Aktualität" sortieren lassen. Ich würde dann SORT auf diese versteckte Spalte anwenden (Spalte nat. vorher auf ".ValueType = GetType(Date)" setzen.
    Würde das also mit Datentyp "Date" auch funktionieren?
    OK ... machen wir es noch konkreter:
    Gib dem DGV eine Spalte des Typs DateTime und Dein Problem ist gelöst.
    Wie Du das DateTime-Objekt anzeigst (nur Datum, nur Zeit oder beides) ist doch egal.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    na das wären ja tolle Aussichten ... und welches Steuerelement soll ich dann verwenden?
    Es geht doch nur um das Anzeigen von (ungebundenen) Daten aus dem Internet die auch noch permanent aktualisiert werden. Wie soll da eine Datenbank drunter liegen???
    Wer redet von Datenbank? An eine Datenbank kann man auch nix binden.

    Wenn du Daten verarbeiten willst, bastel dir ein typisiertes Dataset, und tu die Daten da rein.
    Daran kannst du binden, und im Dataset liegen die Daten in einer höchst komfortabel zu verarbeitenden Form vor.
    gugge vlt. DB-Programmierung ohne Datenbank oder Daten laden, speichern, verarbeiten.
    Dabei entfällt in deinem Fall ja das laden/speichern via Xml, aber Daten updaten/hinzufügen/auswählen/verarbeiten ist bei dir ja auch Thema.

    Konvertieren Datum und Zeit nach Double

    Dim Datum As Double = Convert.ToSingle(DateTime.Now.ToOADate())
    MessageBox.Show("Datum nach Double ist: " & Datum.ToString())


    Edit by Manschula: Bitte auf das Datum achten (2012<>2014) und keine "alten" Themen ausgraben! --> Thema geschlossen!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Manschula“ ()