Frage zur Zeit ....

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von jan99.

    Frage zur Zeit ....

    Moin!

    ich brauche immer das Datum vom Tag zuvor und habe
    folgenden Code und dabei wird mir so ein merkwürdiges Ergebnis für die
    Variable Test angezeigt:

    Visual Basic-Quellcode

    1. Dim today As System.DateTime
    2. Dim check_date As System.DateTime
    3. today = System.DateTime.Now
    4. check_date = today.AddDays(k_TageZuvor)
    5. Dim test As String
    6. test = check_date.ToString("yyyymmdd")



    today #6/16/2016 2:20:17 PM# Date
    check_date #6/15/2016 2:20:17 PM# Date
    test "20162015" String


    Kann mir hierzu einer weiterhelfen?

    Schiebe
    gleich noch eine zweite Frage nach - ich brauche von dem gestrigen Tag
    (=check_date) in einer Variablen eine bestimmte Uhrzeit
    (TestZeit="10:00"). Wie führe ich die Uhrzeit mit meinem Tag zusammen?

    Ziel soll es ein ein Datum mit einem anderen zu vergleichen.

    Gruß Jan
    also den gestrigen Tag hol ich mir immer so:

    VB.NET-Quellcode

    1. Today.AddDays(-1)


    Sorry, hab erst falsch gelesen: versuchs mal so: check_date.ToString("yyyyMMdd")

    "Hier könnte Ihre Werbung stehen..."

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

    Moin!

    bis auf die Tatsache das ich

    Visual Basic-Quellcode

    1. Dim k_TageZuvor As Integer = -1


    vergessen habe mit zu dokumentieren sollte ich dasselbe haben.

    Aber warum kommt da plötzlich so ein merkwürdiges Datum zustanden:

    test "20162015" String


    Gruß Jan
    hier diverse weitere datumsfunktionen aus denen die vorgehensweise klar wird. hab ich diesem brillanten meisterwerk :-)



    VB.NET-Quellcode

    1. Public NotInheritable Class DateCalcHelper
    2. ''' <summary>
    3. ''' Errechnet das Datum, das dem 1. des Monats entspricht,
    4. ''' der sich aus dem angegebenen Datum ergibt.
    5. ''' </summary>
    6. ''' <param name="CurrentDate">Datum, dessen Monat für die Berechnung zugrunde gelegt wird.</param>
    7. ''' <returns></returns>
    8. ''' <remarks></remarks>
    9. Public Shared Function FirstDayOfMonth(ByVal CurrentDate As Date) As Date
    10. Return New Date(CurrentDate.Year, CurrentDate.Month, 1)
    11. End Function
    12. ''' <summary>
    13. ''' Errechnet das Datum, das dem Letzen des Monats entspricht,
    14. ''' der sich aus dem angegebenen Datum ergibt.
    15. ''' </summary>
    16. ''' <param name="CurrentDate">Datum, dessen Monat für die Berechnung zugrunde gelegt wird.</param>
    17. ''' <returns></returns>
    18. ''' <remarks></remarks>
    19. Public Shared Function LastDayOfMonth(ByVal CurrentDate As Date) As Date
    20. Return New Date(CurrentDate.Year, CurrentDate.Month, 1).AddMonths(1).AddDays(-1)
    21. End Function
    22. ''' <summary>
    23. ''' Errechnet das Datum, das dem 1. des Jahres entspricht,
    24. ''' das sich aus dem angegebenen Datum ergibt.
    25. ''' </summary>
    26. ''' <param name="CurrentDate">Datum, dessen Jahr für die Berechnung zugrunde gelegt wird.</param>
    27. ''' <returns></returns>
    28. ''' <remarks></remarks>
    29. Public Shared Function FirstOfYear(ByVal CurrentDate As Date) As Date
    30. Return New Date(CurrentDate.Year, 1, 1)
    31. End Function
    32. ''' <summary>
    33. ''' Errechnet das Datum, das dem ersten Montag der ersten Woche des Monats entspricht,
    34. ''' der sich aus dem angegebenen Datum ergibt.
    35. ''' </summary>
    36. ''' <param name="CurrentDate">Datum, dessen Woche für die Berechnung zugrunde gelegt wird.</param>
    37. ''' <returns></returns>
    38. ''' <remarks></remarks>
    39. Public Shared Function MondayOfFirstWeekOfMonth(ByVal CurrentDate As Date) As Date
    40. Dim locDate As Date = FirstDayOfMonth(CurrentDate)
    41. If Weekday(locDate) = DayOfWeek.Monday Then
    42. Return locDate
    43. End If
    44. Return locDate.AddDays(6 - Weekday(CurrentDate))
    45. End Function
    46. ''' <summary>
    47. ''' Errechnet das Datum, das dem Montag der Woche entspricht,
    48. ''' die sich aus dem angegebenen Datum ergibt.
    49. ''' </summary>
    50. ''' <param name="CurrentDate">Datum, dessen Woche für die Berechnung zugrunde gelegt wird.</param>
    51. ''' <returns></returns>
    52. ''' <remarks></remarks>
    53. Public Shared Function MondayOfWeek(ByVal CurrentDate As Date) As Date
    54. If Weekday(CurrentDate) = DayOfWeek.Monday Then
    55. Return CurrentDate
    56. Else
    57. Return CurrentDate.AddDays(-Weekday(CurrentDate) + 1)
    58. End If
    59. End Function
    60. ''' <summary>
    61. ''' Errechnet das Datum, das dem ersten Montag der zweiten Woche des Monats entspricht,
    62. ''' der sich aus dem angegebenen Datum ergibt.
    63. ''' </summary>
    64. ''' <param name="CurrentDate">Datum, dessen Woche für die Berechnung zugrunde gelegt wird.</param>
    65. ''' <returns></returns>
    66. ''' <remarks></remarks>
    67. Public Shared Function MondayOfSecondWeekOfMonth(ByVal currentDate As Date) As Date
    68. Return MondayOfFirstWeekOfMonth(currentDate).AddDays(7)
    69. End Function
    70. ''' <summary>
    71. ''' Errechnet das Datum, das dem ersten Montag der letzten Woche des Monats entspricht,
    72. ''' der sich aus dem angegebenen Datum ergibt.
    Gruß Hannes
    Dies macht das:

    jan99 schrieb:

    VB.NET-Quellcode

    1. test = check_date.ToString("yyyymmdd")
    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!
    test = check_date.ToString("yyyymmdd")
    ' check_date #6/15/2016 2:20:17 PM# Date
    ' test "20162015" String

    yyyy ==> 2015 ' Jahr
    mm ==> 20 ' Minuten
    dd ==> 15 ' Tagesdatum

    Korrekt wäre .ToString("yyyyMMdd")
    weil nur MM den Monat abbildet.
    Ich habs mir auch nicht ausgedacht :)
    An manchen Tagen gibt es zu allem Überfluss auch noch Ärger!