Ho bisogno di una funzione che possa restituire la differenza tra le due date seguenti come 24.
DateTime a = new DateTime(2008, 01, 02, 06, 30, 00);
DateTime b = new DateTime(2008, 01, 03, 06, 30, 00);
Risposte:
Puoi fare quanto segue:
TimeSpan duration = b - a;
Ci sono molti metodi incorporati nella classe timespan per fare ciò di cui hai bisogno, cioè
duration.TotalSeconds
duration.TotalMinutes
Maggiori informazioni possono essere trovate qui .
Prova quanto segue
double hours = (b-a).TotalHours;
Se desideri solo la differenza oraria escludendo la differenza in giorni, puoi utilizzare quanto segue
int hours = (b-a).Hours;
La differenza tra queste due proprietà si nota principalmente quando la differenza di orario è superiore a 1 giorno. La proprietà Hours riporterà solo la differenza di ora effettiva tra le due date. Quindi, se due date differiscono di 100 anni ma si verificano alla stessa ora nel giorno, le ore restituiranno 0. Ma TotalHours restituirà la differenza tra la quantità totale di ore che si sono verificate tra le due date (876.000 ore in questo caso).
L'altra differenza è che TotalHours restituirà ore frazionarie. Questo può o non può essere quello che vuoi. In caso contrario, Math.Round può regolarlo a tuo piacimento.
Stai forse cercando:
int Difference = (a-b).Hours;
La differenza di orario in b / n con l'ora verrà mostrata utilizzando questo metodo.
private void HoursCalculator()
{
var t1 = txtfromtime.Text.Trim();
var t2 = txttotime.Text.Trim();
var Fromtime = t1.Substring(6);
var Totime = t2.Substring(6);
if (Fromtime == "M")
{
Fromtime = t1.Substring(5);
}
if (Totime == "M")
{
Totime = t2.Substring(5);
}
if (Fromtime=="PM" && Totime=="AM" )
{
var dt1 = DateTime.Parse("1900-01-01 " + txtfromtime.Text.Trim());
var dt2 = DateTime.Parse("1900-01-02 " + txttotime.Text.Trim());
var t = dt1.Subtract(dt2);
//int temp = Convert.ToInt32(t.Hours);
//temp = temp / 2;
lblHours.Text =t.Hours.ToString() + ":" + t.Minutes.ToString();
}
else if (Fromtime == "AM" && Totime == "PM")
{
var dt1 = DateTime.Parse("1900-01-01 " + txtfromtime.Text.Trim());
var dt2 = DateTime.Parse("1900-01-01 " + txttotime.Text.Trim());
TimeSpan t = (dt2.Subtract(dt1));
lblHours.Text = t.Hours.ToString() + ":" + t.Minutes.ToString();
}
else
{
var dt1 = DateTime.Parse("1900-01-01 " + txtfromtime.Text.Trim());
var dt2 = DateTime.Parse("1900-01-01 " + txttotime.Text.Trim());
TimeSpan t = (dt2.Subtract(dt1));
lblHours.Text = t.Hours.ToString() + ":" + t.Minutes.ToString();
}
}
usa gli ID del tuo campo
var t1 acquisisce un valore di 4:00 AM
controllare questo codice può essere utile a qualcuno.