2017-06-13 5 views
0

Ich benutze diesen Code für MinDate und MaxDate Stunde in Datetime einzustellen:Datetime Picker MinDate und MaxDate

oraDa.MinDate = DateTime.Parse("14:00"); 
oraDa.MaxDate = DateTime.Parse("22:00");`. 

Mein Problem ist, wenn ich einen anderen MinDate und MaxDate für eine andere Arbeitsschicht einstellen wollen:

oraDa.MinDate = DateTime.Parse("22:00"); 
oraDa.MaxDate = DateTime.Parse("6:00");. 

Die Fehlermeldung ist

MinDate gering sein muss weniger als MaxDate.

Irgendwelche Hilfe bitte? Danke

+0

Nun, ich denke, das ist, weil 22:00 nach 6:00 ist, versuchen Sie, auf eine andere Weise zu denken, um dies zu lösen. – Yonlif

+0

für Sie, die eine mögliche Lösung sein wird? –

Antwort

1

Eine DateTime-Variable (oder -Eigenschaft) besteht immer aus einem Datumsteil und einem Zeitteil. Wenn Sie nicht das Datum Teil eingestellt wird angenommen, die heute aktuell sein, so dass Ihr DateTime.Parse Code erzeugt folgende Ergebnisse

13/06/2017 06:00 is lesser than 13/06/2017 22:00 

So sind Sie gezwungen, den vollen Tag legen und Sie dies nicht tun müssen einen String dafür analysieren.

2

Das Problem ist, dass Sie heute als Datum erhalten, wenn Sie eine Zeit analysieren. Und heute 22:00 ist weniger als heute 6:00.

Sie könnten dieses Problem vermeiden, wenn dieses Stück Code

oraDa.MinDate = DateTime.Parse("22:00"); 
oraDa.MaxDate = DateTime.Parse("6:00").AddDays(1); 

Für heute würden Sie MinDate = 2017.06.13 22.00 und MaxDate = 14.06.2017 6:00

erhalten
+0

danke für die antwort! Ich benutze diese Lösung, aber wenn Maxdate-Ausdruck eingestellt ist, komme Show-Stunde bis 23.00 Uhr ... Ich weiß nicht warum ... –

Verwandte Themen