Advertisement
FoxTuGa

timmings.h

Sep 29th, 2011
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.09 KB | None | 0 0
  1. #define TRUE 1
  2. #define FALSE 1
  3.  
  4. struct tagHORAS {
  5.     int hora;
  6.     int minutos;
  7.     int segundos;
  8. };
  9. struct tagDATAS {
  10.     int dia;
  11.     int mes;
  12.     int ano;
  13. };
  14.  
  15. int Valid(int x, int inf, int sup);
  16. int Diames(int mes, int ano);
  17. unsigned long long ContaSegVida(struct tagHORAS HActual, struct tagHORAS HNasc, struct tagDATAS DActual, struct tagDATAS DNasc);
  18. int FinishL(int SegA, int MinA, int HorA, int DiaA, int MesA, int AnoA, struct tagHORAS HActual, struct tagDATAS DActual);
  19. unsigned long long DiatoSeg(int Dias);
  20. int ValidaData(int dia, int mes, int ano);
  21. int ValidaHora(int segundos, int minutos, int hora);
  22.  
  23. int Valid(int x, int inf, int sup) {
  24.     return (x >= inf && x <= sup) ? TRUE : FALSE;
  25. }
  26.  
  27. int Diames(int mes, int ano) {
  28.     int dias;
  29.     if( mes == 1 || mes == 3 || mes == 5 || mes == 7 || mes == 8 || mes == 10 || mes == 12 )
  30.         dias = 31;
  31.     else    if( mes == 2 ) {
  32.         if( ( (!(ano % 4)) && (ano % 100) ) || (!(ano % 400)) )
  33.             dias = 29;
  34.         else
  35.             dias = 28;
  36.     }
  37.     else
  38.         dias = 30;
  39.     return dias;
  40. }
  41.  
  42. unsigned long long ContaSegVida(struct tagHORAS HActual, struct tagHORAS HNasc, struct tagDATAS DActual, struct tagDATAS DNasc) {
  43.     unsigned long long SegTotal;
  44.     int DiaI, DiaMes, MesI, AnoI, dif_s, dif_m, dif_h, diasTotal, count;
  45.     SegTotal = 0;
  46.     DiaI = DNasc.dia;
  47.     MesI = DNasc.mes;
  48.     AnoI = DNasc.ano;
  49.     dif_s = dif_m = dif_h = diasTotal = count = 0;
  50.  
  51.     while(TRUE) {
  52.         if(DiaI == DActual.dia && MesI == DActual.mes && AnoI == DActual.ano)
  53.             break;
  54.         else
  55.             DiaI++;
  56.         count++;
  57.         DiaMes = Diames(MesI,AnoI);
  58.         if(DiaI == DiaMes) {
  59.             MesI++;
  60.             diasTotal += DiaI;
  61.             DiaI=1;
  62.             if(MesI == 12) {
  63.                 AnoI++;
  64.                 MesI=0;
  65.             }
  66.         }
  67.     }
  68.  
  69.     if(HNasc.hora > HActual.hora)
  70.         dif_h = HNasc.hora - HActual.hora;
  71.     else
  72.         dif_h = HActual.hora - HNasc.hora;
  73.     dif_h *= 60*60;
  74.     if(HNasc.minutos > HActual.minutos)
  75.         dif_m = HNasc.minutos - HActual.minutos;
  76.     else
  77.         dif_m = HActual.minutos - HNasc.minutos;
  78.     dif_m *= 60;
  79.     if(HNasc.segundos > HActual.segundos)
  80.         dif_s = HNasc.segundos - HActual.segundos;
  81.     else
  82.         dif_s = HActual.segundos - HNasc.segundos;
  83.  
  84.     if(diasTotal != 0)
  85.         diasTotal = DiatoSeg(diasTotal);
  86.     if( count == 0 )
  87.         DiaI = 1;
  88.  
  89.     SegTotal = DiatoSeg(DiaI-1) + dif_h + dif_m + dif_s + diasTotal;   
  90.  
  91.     return SegTotal;
  92. }
  93.  
  94. int FinishL(int SegA, int MinA, int HorA, int DiaA, int MesA, int AnoA, struct tagHORAS HActual, struct tagDATAS DActual) {
  95.     if( SegA == HActual.segundos && MinA == HActual.minutos && HorA == HActual.hora && DiaA == DActual.dia && MesA == DActual.mes && AnoA == DActual.ano )
  96.         return TRUE;
  97.     return FALSE;
  98. }
  99.  
  100. unsigned long long DiatoSeg(int Dias) {
  101.     return Dias * 86400;
  102. }
  103.  
  104. int ValidaData(int dia, int mes, int ano) {
  105.     int maxmes;
  106.  
  107.     maxmes = Diames(mes,ano);
  108.     if( !Valid(dia,1,maxmes) || !Valid(mes,1,12) || !Valid(ano,200,4000) ) {
  109.         system("cls");
  110.         printf("\n\n\t\t\tInvalido\n\n\n");
  111.         return FALSE;
  112.     }
  113.     return TRUE;
  114. }
  115.  
  116. int ValidaHora(int segundos, int minutos, int hora) {
  117.     if( !Valid(hora,0,23) || !Valid(minutos,0,59) || !Valid(segundos,0,59) ) {
  118.         system("cls");
  119.         printf("\n\n\t\t\tInvalido\n\n\n");
  120.         return FALSE;
  121.     }
  122.     return TRUE;
  123. }
  124.  
  125.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement