una sumar restar otra net menos hay habiles fechas fecha entre días diferencia dias cuantos cantidad calcular asp actual c# .net datetime

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;