2017-08-29 11 views
2

ich eine Zeitspanne Datentyp in einer datatimerpicker angezeigt werden soll, muss ich zuerst konvertieren, aber ich weiß nicht, wie es Wenn SieConvert Zeitspanne zu einem Datetime in C# Hinzufügen zu datetime

private void button1_Click(object sender, EventArgs e) 
{ 
    TimeSpan a = new TimeSpan(12, 00, 00); 
    TimeSpan b = new TimeSpan(13, 00, 00); 

    TimeSpan r = b - a; 
    TimeSpan rr = new TimeSpan(r.Ticks/2); 

    MessageBox.Show("Test\n " + rr); ///this is type TimeSpan 

    dateTimePicker.Value =Convert.ToDateTime(rr); 
    // error here 
    // Additional Information: An object of type 'System.TimeSpan' 
    // can not be converted to type 'System.IConvertible'. " 
} 
+0

Machen Sie einen Schritt zurück und sagen Sie uns, das Geschäft Problem, das Sie versuchen zu lösen. – mjwills

+2

TimeSpan ist ein Zeitraum - kein tatsächliches Datum/Uhrzeit - Sie können einem bestimmten DateTime einen TimeSpan hinzufügen, aber nicht direkt in DateTime konvertieren. – PaulF

+0

Wie möchten Sie eine TimeSpan in eine DateTime konvertieren? Möchten Sie, dass es so weit in der Zukunft ist wie der TimeSpan? – Jerodev

Antwort

2

Versuch:

private void button1_Click(object sender, EventArgs e){ 
TimeSpan a = new TimeSpan(12, 00, 00); 
TimeSpan b = new TimeSpan(13, 00, 00); 

TimeSpan r = b - a; 
TimeSpan rr = new TimeSpan(r.Ticks/2); 

MessageBox.Show("Test\n " + rr); ///this is type TimeSpan 

dateTimePicker.Value = DateTime.Now.Date.AddMilliseconds(rr.TotalMilliseconds); 
} 
0

zu tun wollen nur Zeit in DateTimePicker Steuerelement angezeigt werden nur die jedoch zu TimeFormat Eigenschaftswert ändern, wenn Sie für die Steuerung suchen es als Zähler verwendet werden, empfehle ich Ihnen TextBox oder Label oder etwas anderes nutzen :)

+0

habe ich schon getan Prozess, aber es funktioniert nicht, ich brauche ein einfaches Beispiel, ich arbeite mit windosForm –

+0

Was meinst du mit "Ich habe diesen Prozess schon gemacht"? Sie haben ein Textfeld als Zähler verwendet und es funktioniert nicht? Erzählen Sie uns bitte zuerst :) Was genau wollen Sie erreichen? – Pawlinski

2

diese darf in keiner Weise ein sein Beantworten Sie Ihre Frage - nehmen Sie es als einen Einblick in das, was Sie fragen möchten, und dann können wir vielleicht eine echte Frage/Antwort dafür erstellen.

Datum/Uhrzeit-Auswahl muss eine Datumskomponente enthalten. Allerdings können wir den Datumsteil "ignorieren".

kann ich nur wegen der Unbestimmtheit der Frage spekulieren ... aber hier geht .. mein "könnte sein" sind, wie es in der ausgedrückt wird Ende ...

TimeSpan a = new TimeSpan(12, 00, 00);  // 12 hours (could be midday) 
TimeSpan b = new TimeSpan(13, 00, 00);  // 13 hours (could be 1 pm) 

TimeSpan r = b - a;       // 1 hour (could be 1 am) 

TimeSpan rr = new TimeSpan(r.Ticks/2);  // 30 minutes (could be 12:30 am) 

dateTimePicker.Value = DateTime.Now.Add(rr); // current date time plus 30 minutes 

// -- OR -- 

dateTimePicker.Value = DateTime.Now.Date.Add(rr); // current date plus 30 minutes 
                // eg: 2017-08-29 00:30:00 

ich denke, es ist die letzte ist, die Sie suchen, aber mit diesem in den Mix ...

dateTimePicker.Format = DateTimePickerFormat.Time; 

dies für weitere Informationen siehe: https://msdn.microsoft.com/en-us/library/ms229631(v=vs.100).aspx