c# - suma - calcular horas en excel
Calculando cuántos minutos hay entre dos veces (5)
¿Qué pasa con varTime.TotalMinutes
? :)
Tengo una vista de cuadrícula de datos en mi aplicación que contiene los tiempos de inicio y finalización. Quiero calcular la cantidad de minutos entre estas dos veces. Hasta ahora tengo:
var varFinish = tsTable.Rows[intCellRow]["Finish Time"];
TimeSpan varTime = (DateTime)varFinish - (DateTime)varValue;
int intMinutes = TimeSpan.FromMinutes(varTime);
Pero la última línea no compilará porque dice que estoy usando argumentos inválidos para el constructor Timespan. He investigado bastante sobre cómo calcular el número de minutos entre dos veces, pero estoy golpeando un poco una pared de ladrillos. ¿Puede alguien por favor asesorarme sobre la mejor manera de lograr mi objetivo?
EDITAR/
Ahora mi código es el siguiente:
var varFinish = tsTable.Rows[intCellRow]["Finish Time"];
TimeSpan varTime = (DateTime)varFinish - (DateTime)varValue;
int intMinutes = (int)varTime.TotalMinutes;
Pero estoy recibiendo un yeso inválido en la segunda línea. Tanto varFinish como varValue son tiempos, por ejemplo, 10:00 y 8:00 dicen. ¿Entonces no estoy seguro de por qué no lanzarán para escribir DateTime?
En su código de consulta, está utilizando TimeSpan.FromMinutes
incorrectamente. Consulte la documentación de MSDN para TimeSpan.FromMinutes, que proporciona la siguiente firma de método:
public static TimeSpan FromMinutes(double value)
por lo tanto, el siguiente código no compilará
var intMinutes = TimeSpan.FromMinutes(varTime); // won''t compile
En su lugar, puede usar la propiedad TimeSpan.TotalMinutes para realizar esta aritmética. Por ejemplo:
TimeSpan varTime = (DateTime)varFinish - (DateTime)varValue;
double fractionalMinutes = varTime.TotalMinutes;
int wholeMinutes = (int)fractionalMinutes;
Prueba esto
DateTime startTime = varValue
DateTime endTime = varTime
TimeSpan span = endTime.Subtract ( startTime );
Console.WriteLine( "Time Difference (minutes): " + span.TotalMinutes );
Si la diferencia entre endTime y startTime es mayor o igual a 60 Minutos , la instrucción: endTime.Subtract(startTime).Minutes;
siempre regresará (minutesDifference % 60)
. Obviamente, lo que no se desea cuando solo estamos hablando de minutos (no horas aquí).
Estas son algunas de las maneras si desea obtener el total number of minutes
(en diferentes tipos de transmisión):
// Default value that is returned is of type *double*
double double_minutes = endTime.Subtract(startTime).TotalMinutes;
int integer_minutes = (int)endTime.Subtract(startTime).TotalMinutes;
long long_minutes = (long)endTime.Subtract(startTime).TotalMinutes;
string string_minutes = (string)endTime.Subtract(startTime).TotalMinutes;
double minutes = varTime.TotalMinutes;
int minutesRounded = (int)Math.Round(varTime.TotalMinutes);
TimeSpan.TotalMinutes : la cantidad total de minutos representados por esta instancia.