2016-10-28 3 views
0

Ich habe ein Problem mit dem DatePicker von der ToolBox. Ich versuche, ein Programm in WPF für einen Benutzer zu erstellen, um zwei Daten aus zwei DatePickers auszuwählen und basierend auf diesen Daten die Anzahl der Tage zwischen ihnen zu bestimmen.WPF 2015 Visual Studio DatePicker mit C#

Online Ich fand einen anderen Typ von Tool namens DateTimePicker, der einfacher zu bedienen scheint. Dies ist jedoch nicht in meiner ToolBox enthalten, weshalb ich gezwungen bin, die DatePicker-Klasse zu verwenden.

Bis jetzt sieht mein cs-Code wie folgt aus.

using System; 
using System.Collections.Generic; 

namespace DateDifference 
{ 
    /// <summary> 
    /// Interaction logic for MainWindow.xaml 
    /// </summary> 
    public partial class MainWindow : Window 
    { 
     public MainWindow() 
     { 
      InitializeComponent(); 


     } 


     public static object RadDatePickerStart { get; private set; } 

     private void button_Click(object sender, RoutedEventArgs e) 
     { 


     } 


     private void startDate_SelectedDateChanged(object sender, SelectionChangedEventArgs e) 
     { 
      // ... Get DatePicker reference. 
      var picker = sender as DatePicker; 

      // ... Get nullable DateTime from SelectedDate. 
      DateTime? date = picker.SelectedDate; 

      if (date == null) 
      { 
       // ... A null object. 
       this.Title = "No date"; 
      } 
      else 
      { 
       // ... No need to display the time. 
       this.Title = "Program for calculating difference between dates"; 
       textBoxResult.Text = date.Value.ToShortDateString(); 

      } 
     } 

     private void endDate_SelectedDateChanged_1(object sender, SelectionChangedEventArgs e) 
     { 
      // ... Get DatePicker reference. 
      var picker = sender as DatePicker; 

      // ... Get nullable DateTime from SelectedDate. 
      DateTime? date = picker.SelectedDate; 

      if (date == null) 
      { 
       // ... A null object. 
       this.Title = "No date"; 
      } 
      else 
      { 
       // ... No need to display the time. 
       this.Title = "Program for calculating difference between dates"; 
       textBoxResult.Text = date.Value.ToShortDateString(); 

      } 
     } 
    } 
} 

Also meine Frage ist, wie die Differenz in Tagen mit dieser Datepicker-Klasse zu bekommen?

Mit freundlichen Grüßen!

+0

Mögliche Duplikat (http: // Stackoverflow. com/questions/1607336/calculate-difference-zwischen-zwei-dates-number-of-days – ASh

+0

Es ist nicht klar, was fehlt: Möchten Sie eine andere TextBox erstellen, die den Unterschied anzeigt? In diesem Fall können Sie den Text einfach an eine Abhängigkeitseigenschaft (oder Ihr ViewModel) binden und diese Eigenschaft jedes Mal aktualisieren, wenn sich das Ende oder der Anfang ändert ... –

Antwort

0

Sie können die Datetime-Objekt aus dem Datepicker erhalten und vergleichen dann die Daten wie folgt aus: [? Berechnen Differenz zwischen zwei Daten (Anzahl der Tage)]

(EndDate - StartDate).TotalDays 
+0

Wie bekomme ich das Datetime-Objekt vom Datepicker? Entschuldigung für meine grundlegenden Fragen. Ich habe C# vorher noch nie benutzt. – jazy

+0

versuchen, den Wert des Datetime-Objekts auf null festzulegen, datePicker.SelectedDate = null; Sie können auch Folgendes versuchen: datePicker.ClearValue (DatePicker.SelectedDateProperty) – Diemauerdk