c# - sumar - Días, horas, minutos, segundos entre dos fechas
sumar dias a una fecha asp net c# (9)
¿Has probado usar
TimeSpan()
eso ciertamente puede hacer lo que quieras
Tengo dos fechas, una menos que la otra. Quiero crear una cadena como esta
"0 días, 0 horas, 23 minutos, 18 segundos"
representando la diferencia entre las dos fechas. ¿Cómo puedo obtener estos elementos de esta cadena?
¿Qué tal algo como esto?
TimeSpan diff = dateTimeNew - dateTimeOld;
string output = string.Format("{0} days, {1} hours, {2} minues, {3} seconds", diff.Days, diff.Hours, diff.Minutes, diff.Seconds);
Console.WriteLine(output);
Cuando restas un DateTime
de otro, obtienes una instancia de TimeSpan
, que expone esos valores.
TimeSpan diff = DateTime.Now - DateTime.Today;
string formatted = string.Format(
CultureInfo.CurrentCulture,
"{0} days, {1} hours, {2} minutes, {3} seconds",
diff.Days,
diff.Hours,
diff.Minutes,
diff.Seconds);
No olvide que si desea que este cálculo sea portátil, debe almacenarlo como UTC y luego, cuando lo visualice, conviértalo a la hora local. Como regla general Almacenar las fechas como UTC y convertir a la hora local para la presentación.
Use la clase TimeSpan , que obtendrá cuando resta las fechas.
Puede formatear la salida utilizando cadenas de formato standard o custom .
"0 días, 0 horas, 23 minutos, 18 segundos"
se puede tener con algo como:
TimeSpan ts = DateTime.Now - DateTime.Today;
Console.WriteLine(
string.Format("{0:%d} days, {0:%h} hours, {0:%m} minutes, {0:%s} seconds", ts)
);
IMO, es más limpio y fácil de usar. string.Format
lugar de tener que escaparse de las palabras en su cadena de formato (que necesitaría si acaba de usar .ToString
), .ToString
o .ToString
manualmente.
Use un TimeSpan
DateTime startTime = DateTime.Now;
DateTime endTime = DateTime.Now.AddSeconds( 75 );
TimeSpan span = endTime.Subtract ( startTime );
Console.WriteLine( "Time Difference (seconds): " + span.Seconds );
Console.WriteLine( "Time Difference (minutes): " + span.Minutes );
Console.WriteLine( "Time Difference (hours): " + span.Hours );
Console.WriteLine( "Time Difference (days): " + span.Days );
String yourString = string.Format("{0} days, {1} hours, {2} minues, {3} seconds",
span.Days, span.Hours, span.Minutes, span.Seconds);
TimeSpan es el objeto que necesita:
TimeSpan span = (DateTime.Now - DateTime.Now);
String.Format("{0} days, {1} hours, {2} minutes, {3} seconds",
span.Days, span.Hours, span.Minutes, span.Seconds);
DateTime myDay = DateTime.Now;
DateTime otherDate = DateTime.Now.AddYears(1);
var test = otherDate.Subtract(myDay);
Console.WriteLine("Days:" + test.Days + "Hours:" + test.Hours +"Minutes" + test.Minutes +"Seconds" + test.Seconds);
Aquí la prueba es de tipo TimeStamp
TimeSpan diffTime = dateTimeNew -PreviousDate;
int days=diffTime.Days;
int hours=diffTime.Hours;
int minutes=diffTime.Minutes;
int seconds=diffTime.Seconds;