Wie kann ein relativer Datumsbereich (diese Woche, dieses Jahr, letzter Monat usw.) am besten aus einer DateTime erstellt werden?

8

Ich bin mir sicher, dass ich nicht die erste Person bin, die das tun muss, also suche ich den besten Weg.

Ich habe eine Reihe von Optionsfeldern mit Optionen wie

  • Dieses Jahr
  • Letztes Jahr
  • Dieser Monat
  • Letzter Monat
  • Diese Woche
  • Letzte Woche

und ich muss den richtigen relativen Datumsbereich vom aktuellen Datum ( DateTime.Now ) erzeugen.

Wenn beispielsweise Last Year ausgewählt wurde und das aktuelle Datum 4/2/09 14:45:32 war, müsste ich ein Startdatum von 1/1/08 00:00:00 und das Enddatum von 12/31/08 23:59:59 zurückgeben.

Irgendwelche Gedanken?

    
Lawrence Johnston 02.04.2009, 18:56
quelle

4 Antworten

20

Alle diese wurden mit DateTime.Today getestet und funktionieren genau so, wie Sie es verlangt haben:

%Vor%     
Chris Doggett 02.04.2009, 19:06
quelle
9

Dieses Jahr:

%Vor%

Diesen Monat:

%Vor%

Diese Woche:

%Vor%

Letztes Jahr / Monat / Woche sind einfache Abweichungen von oben. Bearbeiten: Diese Woche geht davon aus, dass die Woche am Sonntag beginnt. Sie müssten den Code leicht ändern, wenn Ihre Wochen am Montag beginnen.

    
Keltex 02.04.2009 19:03
quelle
1
___ qstnhdr ___ Wie kann ein relativer Datumsbereich (diese Woche, dieses Jahr, letzter Monat usw.) am besten aus einer DateTime erstellt werden? ___ answer711171 ___

Ich würde die integrierten DateTime-Methoden zum Hinzufügen und Zurückgeben bestimmter Teile des Datums verwenden, um eine Funktion zu schreiben, die das Intervall zurückgibt.

    
___ tag123c ___ C # (sprich "Cis") ist eine objektorientierte Programmiersprache auf hohem Niveau, die zum Erstellen einer Vielzahl von Anwendungen entwickelt wurde, die auf dem .NET Framework (oder .NET Core) ausgeführt werden. C # ist einfach, leistungsfähig, typsicher und objektorientiert. ___ tag123net ___ Das .NET-Framework ist ein Software-Framework, das hauptsächlich für das Microsoft Windows-Betriebssystem entwickelt wurde. Es enthält eine Implementierung der Basisklassenbibliothek, Common Language Runtime (allgemein als CLR bezeichnet), Common Type System (allgemein als CTS bezeichnet) und Dynamic Language Runtime. Es unterstützt viele Programmiersprachen, einschließlich C #, VB.NET, F # und C ++ / CLI. NICHT für Fragen zu .NET Core verwenden. ___ tag123datetime ___ Ein DateTime-Objekt beschreibt in vielen Programmiersprachen ein Datum und eine Uhrzeit. Je nach dem Kontext, in dem es verwendet wird, und der spezifischen Implementierung kann es entweder einen Zeitpunkt oder eine Position in einem Kalender ausdrücken. Dieses Tag kann für alle Probleme mit Datum und Uhrzeit verwendet werden. ___ tag123relativedate ___ hilf uns dieses Wiki zu bearbeiten ___ qstntxt ___

Ich bin mir sicher, dass ich nicht die erste Person bin, die das tun muss, also suche ich den besten Weg.

Ich habe eine Reihe von Optionsfeldern mit Optionen wie

  • Dieses Jahr
  • Letztes Jahr
  • Dieser Monat
  • Letzter Monat
  • Diese Woche
  • Letzte Woche

und ich muss den richtigen relativen Datumsbereich vom aktuellen Datum ( %code% ) erzeugen.

Wenn beispielsweise %code% ausgewählt wurde und das aktuelle Datum %code% war, müsste ich ein Startdatum von %code% und das Enddatum von %code% zurückgeben.

Irgendwelche Gedanken?

    
___ answer711146 ___

Dieses Jahr:

%Vor%

Diesen Monat:

%Vor%

Diese Woche:

%Vor%

Letztes Jahr / Monat / Woche sind einfache Abweichungen von oben. Bearbeiten: Diese Woche geht davon aus, dass die Woche am Sonntag beginnt. Sie müssten den Code leicht ändern, wenn Ihre Wochen am Montag beginnen.

    
___ answer711154 ___

Alle diese wurden mit DateTime.Today getestet und funktionieren genau so, wie Sie es verlangt haben:

%Vor%     
___
casperOne 02.04.2009 19:00
quelle
0

Ich würde die integrierten DateTime-Methoden zum Hinzufügen und Zurückgeben bestimmter Teile des Datums verwenden, um eine Funktion zu schreiben, die das Intervall zurückgibt.

    
eppdog 02.04.2009 19:10
quelle

Tags und Links