2016-02-13 7 views
6

Ich baue eine genealogical tree app, und ich muss nach diesem Datum erreichen. Ich würde lieber DateTimePicker als TextBox + Text-Datum-Konvertierung bevorzugen.DateTimePicker: Wie man MinDate vor 1753 setzt

Gibt es diese Einschränkung trotzdem?

+6

Nein, harte Grenze. 1753 war das Jahr, in dem England vom Julianischen zum Gregorianischen Kalender wechselte, was dazu führte, dass 15 Tage verloren gingen. Black-Hole-Vermeidung durch einen Sybase-Programmierer, der Firma, die SQL Server gestartet hat. Sie müssen Ihre eigenen machen. –

+1

Sie müssen Ihren eigenen Datentyp erstellen, um Daten mit einer Jahr-, Monats- und Tageseigenschaft zu behandeln. Sie können auch Ihre eigenen Methoden und Eigenschaften für einfache Funktionen wie CompareTo() und AddYears(), AddDays() etc. rollen. Dies bedeutet aber auch, dass Sie Ihr eigenes Kalender-Steuerelement erstellen müssen, um diese Daten zu bearbeiten. – Mangist

Antwort

2

Leider ist die DateTimePicker Steuerung unterstützt keine Daten vor dem 1. Januar 1753. Dies führte schließlich wegen der Beschränkungen in den ist Date and Time Picker und Month Calendar Kontrollen im ComCtl32 Common Controls library. Diese Steuerelemente unterstützen keine Daten vor 1753, da dies die Trennlinie zwischen dem Gregorianischen und dem Julianischen Kalender ist. Da die Steuerelemente auf dem Gregorianischen Kalender basieren, berechnen sie keine Daten, die mit dem Julianischen Kalender übereinstimmen.

Der Grund dafür, dass .NET-Code betroffen ist, ist, weil die DateTimePicker-Klasse ein Wrapper um die untergeordneten comctl32-Steuerelemente ist. Der entsprechende Code lautet here.

Leider ist diese Einschränkung auch in the Mono implementation of the control übertragen, so dass selbst wenn Sie DateTimePicker durch Mono unter Linux oder Mac verwenden, wird es noch keine Termine erlauben, bevor dann, trotz des Fehlens eines comctl32.dll im Betriebssystem.

Es sieht so aus, als ob Telerik their own DateTimePicker control hat. Das könnte eine Untersuchung wert sein. Nach einem kurzen Scan der Dokumente sehe ich jedoch nicht, wo seine Grenzen liegen.

Verwandte Themen