fork download
  1. #include <stdio.h>
  2. #include <time.h>
  3.  
  4. struct Registro {
  5. struct tm entrada;
  6. struct tm salida_comida;
  7. struct tm regreso_comida;
  8. struct tm salida;
  9. };
  10.  
  11. double calcularHorasTrabajadas(struct Registro registro) {
  12. double horas_trabajadas = 0.0;
  13. time_t t1 = mktime(&registro.entrada);
  14. time_t t2 = mktime(&registro.salida_comida);
  15. time_t t3 = mktime(&registro.regreso_comida);
  16. time_t t4 = mktime(&registro.salida);
  17.  
  18. horas_trabajadas += difftime(t2, t1) / 3600.0;
  19. horas_trabajadas += difftime(t4, t3) / 3600.0;
  20.  
  21. return horas_trabajadas;
  22. }
  23.  
  24. int main() {
  25. struct Registro semana[5]; // Asumiendo 5 días laborales
  26.  
  27. for (int i = 0; i < 5; i++) {
  28. printf("Día %d:\n", i + 1);
  29.  
  30. // Registrar la hora de entrada
  31. printf("Hora de entrada (HH MM): ");
  32. scanf("%d %d", &semana[i].entrada.tm_hour, &semana[i].entrada.tm_min);
  33.  
  34. // Registrar la hora de salida a comer
  35. printf("Hora de salida a comer (HH MM): ");
  36. scanf("%d %d", &semana[i].salida_comida.tm_hour, &semana[i].salida_comida.tm_min);
  37.  
  38. // Registrar la hora de regreso a labores
  39. printf("Hora de regreso a labores (HH MM): ");
  40. scanf("%d %d", &semana[i].regreso_comida.tm_hour, &semana[i].regreso_comida.tm_min);
  41.  
  42. // Registrar la hora de salida del trabajo
  43. printf("Hora de salida del trabajo (HH MM): ");
  44. scanf("%d %d", &semana[i].salida.tm_hour, &semana[i].salida.tm_min);
  45. }
  46.  
  47. double horas_semanales = 0.0;
  48. for (int i = 0; i < 5; i++) {
  49. double horas_dia = calcularHorasTrabajadas(semana[i]);
  50. horas_semanales += horas_dia;
  51. printf("Horas trabajadas el día %d: %.2f\n", i + 1, horas_dia);
  52. }
  53.  
  54. printf("Horas trabajadas en la semana: %.2f\n", horas_semanales);
  55.  
  56. return 0;
  57. }
  58.  
Success #stdin #stdout 0.01s 5272KB
stdin
Standard input is empty
stdout
Día 1:
Hora de entrada (HH MM): Hora de salida a comer (HH MM): Hora de regreso a labores (HH MM): Hora de salida del trabajo (HH MM): Día 2:
Hora de entrada (HH MM): Hora de salida a comer (HH MM): Hora de regreso a labores (HH MM): Hora de salida del trabajo (HH MM): Día 3:
Hora de entrada (HH MM): Hora de salida a comer (HH MM): Hora de regreso a labores (HH MM): Hora de salida del trabajo (HH MM): Día 4:
Hora de entrada (HH MM): Hora de salida a comer (HH MM): Hora de regreso a labores (HH MM): Hora de salida del trabajo (HH MM): Día 5:
Hora de entrada (HH MM): Hora de salida a comer (HH MM): Hora de regreso a labores (HH MM): Hora de salida del trabajo (HH MM): Horas trabajadas el día 1: 502869451526.69
Horas trabajadas el día 2: -639547936224.00
Horas trabajadas el día 3: -640236240709.74
Horas trabajadas el día 4: 639548606496.40
Horas trabajadas el día 5: 369996.26
Horas trabajadas en la semana: -137365748914.38