Entwickler-Ecke
WinForms - Datums zwischen zwei Datetimes filtern
Vegeto - Do 21.03.13 11:56
Titel: Datums zwischen zwei Datetimes filtern
HalliHallo...
Ich habe mal nur eine kurz frage.
Ich möchte zwischen zwei Datums(DateTimes), alle Datums in eine TextBox speichern/anzeigen.
Ich weiß das man sowas mit der Struktur TimeSpan machen kann, doch diese Struktur gibt nur Tage,Stunden,Minuten etc. aus, keine vollständigen Date's.
Jetzt wollte ich euch fragen ob es irgendeine Möglichkeit gibt, die Dates herraus zufiltern?
z.B.
anfangDatum = 20.05.2013
endDatum = 27.05.2013
allDate = 20.05.2013,21.05.2013,22.05.2013,23.05.2013,24.05.2013,25.05.2013,26.05.2013,27.05.2013
So stelle ich mir das vor.
ich hoff jemand kann mir irgendeine Anrregung zu diesem Thema geben.
Lg
jfheins - Do 21.03.13 12:07
Wie wäre es mit einer Schleife?
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| var start = new DateTime(2013, 05, 20); var ende = new DateTime(2013, 05, 27);
var x = start; do { Debug.WriteLine(x.ToString("yyyy-MM-dd")); x = x.AddDays(1); } while (x <= ende); |
Vegeto - Do 21.03.13 13:09
Hallo jheins
Habe mal dein Code für meine verhältnisse angepasst:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| var start = new DateTime(2013, 05, 20); var ende = new DateTime(2013, 05, 27);
var x = start; do { txt3.Text = x.ToString("dd-MM-yyyy"); x = x.AddDays(1); } while (x <= ende); |
Doch nun zeigt die TextBox.Text = 27.05.2013 an.
Also das letzte datum, aber mit so einer schleife müsste es funktionieren.
Ich probiere weiter, danke :)
EDIT:
So habe dein Quellcode geändert und dann macht er das was ich will :)
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| var start = new DateTime(2013, 05, 20); var ende = new DateTime(2013, 05, 27);
var x = start; do { txt3.Text += x.ToString("dd.MM.yyyy") + ",";
x = x.AddDays(1); } while (x <= ende); |
Aya - Do 21.03.13 16:07
Hi,
du solltest das hier:
C#-Quelltext
1:
| x.ToString("dd.MM.yyyy") + ","; |
auch direkt so schreiben können eigentlich:
C#-Quelltext
1:
| x.ToString("dd.MM.yyyy,"); |
ist natürlich aber Geschmackssache was man selbst als übersichtlicher empfindet.
Eine kleine andere Anmerkung noch: Die Mehrzahl vom "Datum" ist "Daten", das Wort "Datums" gibt es nicht ;) Wenn man (wie hier im Forum sinnvoll) Verwechslung des Wortes vorbeugen möchte, sollte man es eher umschreiben wie "Datumsangaben" oder direkt das englische "Dates" verwenden, á la "Ich habe mehrere Variablen vom Typ TDateTime..".
Nur so als kleiner hinweis, ist aber natürlich nichts dramatisches :)
Aya
Ralf Jansen - Do 21.03.13 16:33
Alternativ
C#-Quelltext
1: 2: 3: 4:
| var start = new DateTime(2013, 05, 20); var ende = new DateTime(2013, 05, 27);
txt3.Text = string.Join(",", Enumerable.Range(0, (ende - start).Days+1).Select(x => start.AddDays(x).ToString("dd.MM.yyyy"))); |
Vegeto - Fr 22.03.13 10:14
Aya hat folgendes geschrieben : |
Eine kleine andere Anmerkung noch: Die Mehrzahl vom "Datum" ist "Daten", das Wort "Datums" gibt es nicht ;) Wenn man (wie hier im Forum sinnvoll) Verwechslung des Wortes vorbeugen möchte, sollte man es eher umschreiben wie "Datumsangaben" oder direkt das englische "Dates" verwenden, á la "Ich habe mehrere Variablen vom Typ TDateTime..".
Aya |
Alles Klar, Danke :)
Und ich habe dort ein komma eingefüggt, damit ich eine übersicht habe und zugleich ein trennzeichen :)
Danke trotzdem
@ Ralf Jansen
Danke werde ich mir mal anschauen :)
Lg
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!