Zeitraum ermitteln (aktuelle Woche, Monat, Quartal, letzte Woche, Monat, Quartal)

  • VB.NET

Es gibt 14 Antworten in diesem Thema. Der letzte Beitrag () ist von AndPod.

    Zeitraum ermitteln (aktuelle Woche, Monat, Quartal, letzte Woche, Monat, Quartal)

    Hallo zusammen,

    wie gehe ich am besten vor um jeweils den Zeitraum der aktuellen Woche, des aktuellen Monat und des aktuellen Quartals sowie der letzten Woche, des letzten Monates und des letzten Quartals zu ermitteln?

    Muss ich dazu immer erst die aktuelle KW ermitteln und dann ermitteln wann der jeweils erste Tag war oder gibt es schon eine fertige Function in Visual Studio?

    Zum Beispiel kann ich mit DateSerial(Today.Year, Today.Month, 1) den ersten Tag des aktuellen Monates abfragen und mit DateSerial(Today.Year, Today.Month + 1, 0) den letzten Tag des Monates. Nun wäre noch der aktuellen Woche und Quartal interessant, sowie der Vormonat, Vorwoche und Vorquartal.





    Viele Grüße
    Marja

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

    Marja schrieb:

    gibt es schon eine fertige Function in Visual Studio?
    .NET bietet Dir die TimeSpan-Struktur.
    Zunächst musst Du den Unterschied verinnerlichen zwischen einem Zeitpunkt und einem Zeitraum, abgebildet in den Strukturen DateTime bzw. TimeSpan.
    Also:
    Was ist Weihnachten 2018 PLUS Ostern 2018?
    Was ist Weihnachten 2018 MINUS Ostern 2018?
    Das sind sehr ernst gemeinte Fragen, antworte bitte darauf, dann geht es weiter.
    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!

    Marja schrieb:

    Zeitraum der aktuellen Woche
    beträgt 7 Tage.
    Das sind normalerweise 168 Stunden, können aber auch mal 167 oder 169 sein (Zeitumstellung).

    Wahrscheinlich möchtest du aber den Startzeitpunkt (und ggf. Endzeitpunkt).

    Marja schrieb:

    der letzten Woche, des letzten Monates und des letzten Quartals
    Die letzte Woche ist KW52 (manchmal auch 53), der letzte Monat ist Dezember und das letzte Quartal ist das vierte.
    Meinst du die vorherige (vergangene) Woche (Monat/Quartal)?

    Bitte drücke dein Problem exakt aus.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Genau! Aber mittlerweile habe ich das hinbekommen, das nach der gewählten Option der jeweilige Zeitraum dann in den Datumsfelder (Von/Bis) eingetragen ist.

    Hete ist der 23.08.2018

    Gesucht wird dann ...
    - die aktuelle Woche - angezeigt werden soll dann: 20.08.2018-26.08.2018 (funktioniert)
    - der aktuelle Monat - angezeigt werden soll dann: 01.08.2018-31.08.2018 (funktioniert)
    - das aktuelle Quartal - angezeigt werden soll dann: 01.07.2018-30.09.2018 (funktioniert)
    - die letzte Woche - angezeigt werden soll dann: 13.08.2018-19.08.2018 (funktioniert)
    - der letzte Monat - angezeigt werden soll dann: 01.07.2018-31.07.2018 (funktioniert)
    - das letzte Quartal - angezeigt werden soll dann: 01.04.2018-30.06.2018 (funktioniert)

    Danke dennoch für Euren Support
    Marja

    RodFromGermany schrieb:

    Was
    ist Weihnachten 2018 PLUS Ostern 2018?
    Was ist Weihnachten 2018 MINUS Ostern 2018?
    Das sind sehr ernst gemeinte Fragen, antworte bitte darauf, dann geht es weiter.

    Marja schrieb:

    dennoch
    hast Du meine Frage nicht beantwortet. X(
    Ich gehe mal davon aus, dass Du kein Interesse hast, das Problem ordentlich zu behandeln.
    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!

    AndPod schrieb:

    hatte aber auch absolut nichts mit seiner Frage zu tun
    Falls Du mich meinst: @NAME_DES_MITGLIEDS, dann bekomme ich eine Meldung.
    Ich lese im Eröffnungspost die Buchstabenfolge

    Marja schrieb:

    Zeitraum
    Um Marja die Zeit- und Zeitraum-Problematik näherzubringen, stellte ich meine Frage.
    Darf ich davon ausgehen, dass Du, @AndPod , die Frage richtig beantworten kannst?
    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!
    Ja, ich meine dich @RodFromGermany
    Und auch wenn im Eingangspost das Wort Zeitraum vorkommt, so schreibt er auch im letzten Satz was er tatsächlich will:
    Zum Beispiel kann ich mit DateSerial(Today.Year, Today.Month, 1) den ersten Tag des aktuellen Monates abfragen und mit DateSerial(Today.Year, Today.Month + 1, 0) den letzten Tag des Monates. Nun wäre noch der aktuellen Woche und Quartal interessant, sowie der Vormonat, Vorwoche und Vorquartal.


    Das ist seine Anforderung. Nichts mit Anzahl Zeiteinheiten im Zeitraum. Nein, Anfang und Ende - fertig. Das du im Zeit-/Zeitraumproblematik näher bringen willst ist zwar nett von dir. hatte aber absolut nichts mit seiner Fragestellung zu tun. Du erklärst doch auch keinen ein Datenbankmodell wenn er lediglich ein paar Werte in einer List(Of ...) unterbringen will, oder?
    Versteh mich bitte nicht falsch, du bist hier wirklich sehr hilfreich im Forum (wenn auch manchmal auf eine eigenwillige Art, das werfe ich dir aber nicht vor ;) ), aber manchmal schiest du leider auch etwas über das Ziel hinaus.

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

    AndPod schrieb:

    aber manchmal schiest du leider auch etwas über das Ziel hinaus.



    Sehe ich anders. Ich hab manchmal auch mehr Antwort bekommen, als ich von meiner Frage eigentlich erwartet hätte, aber dennoch ist es hilfreich sein Wissen in alle Richtungen zu erweitern.

    Im übrigen markiere ich jetzt @RodFromGermany für dich, da du die falsche Person markiert hast. Er kann dann ja den Post über mir lesen.

    Dennoch würde mich als stiller Mitleser die Antwort von @RodFromGermany Frage interessieren. Ist damit das Ergebnis oder der Datentyp gemeint. Ich möchte es gerne später zu Hause ausprobieren.
    Rechtschreibfehler betonen den künstlerischen Charakter des Autors.
    Ich bin mir sicher, wenn man sich nur ein wenig das Internet bemüht, findet man das hier. (Ungetestet)
    Spoiler anzeigen

    VB.NET-Quellcode

    1. 'Heute + Jetzt
    2. Console.WriteLine("Heute: {0}", DateTime.Today.ToString("MM/dd/yyyy"))
    3. 'Kalenderwoche
    4. Dim heute = DateTime.Now
    5. Dim ci = CultureInfo.CurrentCulture
    6. Dim kw = ci.Calendar.GetWeekOfYear(heute, _
    7. ci.DateTimeFormat.CalendarWeekRule, _
    8. ci.DateTimeFormat.FirstDayOfWeek)
    9. Console.WriteLine("KW: {0}", kw)
    10. 'Quartal
    11. Dim Quartal = CInt(Int((DateTime.Today.Month + 2) / 3))
    12. Console.WriteLine("Quartal: Q{0}", Quartal)
    13. 'Letzter Monat
    14. Dim LetzterMonat = DateTime.Today.Month - 1
    15. Console.WriteLine("Letzter Monat: {0} ({1})", LetzterMonat, _
    16. New DateTime(heute.Year, LetzterMonat, 1).ToString("MMMM"))
    17. 'Letzte Woche
    18. Dim LetzteWoche = kw - 1
    19. Console.WriteLine("KW: {0}", LetzteWoche)
    20. 'Letzter Quartal
    21. Dim LetzterQuartal = CInt(Int((DateTime.Today.Month + 2) / 3)) - 1
    22. LetzterQuartal = If(LetzterQuartal = 0, 4, LetzterQuartal)
    23. Console.WriteLine("Letzter Quartal: Q{0}", LetzterQuartal)


    Jetzt muss man sich nur noch ein bisschen mehr bemühen (z.B. wiederum mit dem Internet), und dann findet man sicher auch noch die Zeiträume.

    Freundliche Grüsse

    exc-jdbi

    Akanel schrieb:

    die Antwort
    Ostern und Weihnachten sind Zeitpunkte, die mit DateTime beschrieben werden.
    Die Summe zweier Zeitpunkte ist nicht definiert, da würde, je nach Kalendersystem, was anderes rauskommen.
    Die Differenz zweier Zeitpunkte ist ein TimeSpan, mit dem kann man arbeiten.
    Diese Fragestellung ist analog zur Temperatur, dort ist die Summe zweier (nicht-absolut-)Temperaturen auch nicht definiert, wohl aber die Differenz, deren Einheit das Kelvin ist.
    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!
    Oh jeh :( , was habe ich da nur los getreten.

    Als erstes - erst einmal vielen Dank für Eure Hilfe. Auch wenn sogar mehr Hilfe angeboten wurde als gefordert. Dankeschön!!
    Ich lerne auch gerne dazu, aber das die Zeitspanne/Differenz für mich in diesem Fall nicht wichtig war, bin ich nicht darauf weiter eingegangen.

    Auch mit Google, Bing und Co. habe ich entsprechend gesucht - aber leider nicht das richtige gefunden was ich gesucht habe.
    Vielleicht habe ich die falschen Suchbegriffe verwendet - wobei man bei "Visual Basic Letze Woche" usw. nicht wirklich viel falsch machen kann.
    Von daher bin ich Dankbar über die Möglichkeiten, sofern man seine Hausaufgaben "Suche" gemacht hat und eine Frage stellen darf.

    Die Ausgangsposition war definitiv wirklich nur ein Startdatum und ein Enddatum eines ausgewählten Eintrages anzuzeigen, um den Nutzer für eine Reportabfrage die manuelle Datumseingabe zu ersparen.

    Ich danke Euch!
    Marja