KL25Z program that calculates the difference in days, hours, minutes, between two dates. Needs a terminal on the PC side to communicate with the program. Terminal must have local echo on. Terminal Data input needs some improvement.
main.cpp@1:0756a87e335f, 2015-05-13 (annotated)
- Committer:
- lmsousa
- Date:
- Wed May 13 12:44:02 2015 +0000
- Revision:
- 1:0756a87e335f
- Parent:
- 0:dce171f603a8
- Child:
- 2:1d24f233ac26
Message format adjusted for terminal operation
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
lmsousa | 0:dce171f603a8 | 1 | /* |
lmsousa | 0:dce171f603a8 | 2 | Programa que calcula a diferença entre duas datas. |
lmsousa | 0:dce171f603a8 | 3 | LESEM ENAUTICA 2014 Luis Sousa aluno 11001 |
lmsousa | 0:dce171f603a8 | 4 | */ |
lmsousa | 0:dce171f603a8 | 5 | |
lmsousa | 0:dce171f603a8 | 6 | #include <stdio.h> |
lmsousa | 0:dce171f603a8 | 7 | |
lmsousa | 0:dce171f603a8 | 8 | int bissexto(int ano); |
lmsousa | 0:dce171f603a8 | 9 | int dias_do_mes(int ano,int mes); |
lmsousa | 0:dce171f603a8 | 10 | int dias_do_ano(int ano); |
lmsousa | 0:dce171f603a8 | 11 | int dias_ate_fim_mes(int ano,int mes,int dia); |
lmsousa | 0:dce171f603a8 | 12 | int dias_dos_meses_intermedios(int ano,int mes1,int mes2); |
lmsousa | 0:dce171f603a8 | 13 | int dias_dos_anos_intermedios(int ano1, int ano2); |
lmsousa | 0:dce171f603a8 | 14 | int dias_ate_fim_ano(int ano,int mes,int dia); |
lmsousa | 0:dce171f603a8 | 15 | int dias_desde_principio_ano(int ano,int mes,int dia); |
lmsousa | 0:dce171f603a8 | 16 | long int dif_data(int ano1,int mes1,int dia1,int ano2,int mes2,int dia2); |
lmsousa | 0:dce171f603a8 | 17 | |
lmsousa | 0:dce171f603a8 | 18 | int main(void) |
lmsousa | 0:dce171f603a8 | 19 | { |
lmsousa | 1:0756a87e335f | 20 | int limite_ano_min=0,limite_ano_max=2100;//Valores limite para o ano// |
lmsousa | 1:0756a87e335f | 21 | int ano_dt1,ano_dt2,mes_dt1,mes_dt2,dia_dt1,dia_dt2; |
lmsousa | 1:0756a87e335f | 22 | long int score_dt1,score_dt2; //Variaveis que avaliam a data mais alta// |
lmsousa | 1:0756a87e335f | 23 | int hora_dt1,hora_dt2,horas,min_dt1,min_dt2,tmins1,tmins2,minutos,tmp_ano,tmp_mes,tmp_dia,tmp_hora,tmp_min; |
lmsousa | 1:0756a87e335f | 24 | |
lmsousa | 1:0756a87e335f | 25 | printf("%c[2J",27); //clrscr(); |
lmsousa | 0:dce171f603a8 | 26 | |
lmsousa | 1:0756a87e335f | 27 | printf(" ----------------------------------------------------\r\n"); |
lmsousa | 1:0756a87e335f | 28 | printf("| Programa que calcula a diferenca entre duas datas. |\r\n"); |
lmsousa | 1:0756a87e335f | 29 | printf("| |\r\n"); |
lmsousa | 1:0756a87e335f | 30 | printf("| LESEM ENAUTICA 2015 Luis Sousa aluno 11001 |\r\n"); |
lmsousa | 1:0756a87e335f | 31 | printf(" ----------------------------------------------------\r\n\n"); |
lmsousa | 0:dce171f603a8 | 32 | |
lmsousa | 1:0756a87e335f | 33 | printf("\n\nIntroducao da Data 1\r\n"); |
lmsousa | 1:0756a87e335f | 34 | do { |
lmsousa | 1:0756a87e335f | 35 | printf("\nIntroduza o ano da Data 1: (%d-%d): ",limite_ano_min,limite_ano_max); |
lmsousa | 1:0756a87e335f | 36 | scanf("%d",&ano_dt1); |
lmsousa | 1:0756a87e335f | 37 | if (!((ano_dt1>=limite_ano_min)&&(ano_dt1<=limite_ano_max))) |
lmsousa | 1:0756a87e335f | 38 | printf("\r\nO ano tem de estar compreendido entre %d e %d ",limite_ano_min,limite_ano_max); |
lmsousa | 1:0756a87e335f | 39 | } while(!((ano_dt1>=limite_ano_min)&&(ano_dt1<=limite_ano_max))); |
lmsousa | 0:dce171f603a8 | 40 | |
lmsousa | 1:0756a87e335f | 41 | do { |
lmsousa | 1:0756a87e335f | 42 | printf("\r\nIntroduza o mes da Data 1: (%d-%d): ",1,12); |
lmsousa | 1:0756a87e335f | 43 | scanf("%d",&mes_dt1); |
lmsousa | 1:0756a87e335f | 44 | if (!((mes_dt1>=1)&&(mes_dt1<=12))) |
lmsousa | 1:0756a87e335f | 45 | printf("\r\nO mes tem de estar compreendido entre %d e %d \n",1,12); |
lmsousa | 0:dce171f603a8 | 46 | |
lmsousa | 1:0756a87e335f | 47 | } while(!((mes_dt1>=1)&&(mes_dt1<=12))); |
lmsousa | 0:dce171f603a8 | 48 | |
lmsousa | 1:0756a87e335f | 49 | do { |
lmsousa | 1:0756a87e335f | 50 | printf("\r\nIntroduza o dia da Data 1: (%d-%d): ",1,dias_do_mes(ano_dt1,mes_dt1)); |
lmsousa | 1:0756a87e335f | 51 | scanf("%d",&dia_dt1); |
lmsousa | 1:0756a87e335f | 52 | if (!((dia_dt1>=1) && (dia_dt1 <= dias_do_mes(ano_dt1,mes_dt1)))) |
lmsousa | 1:0756a87e335f | 53 | printf("\r\nO dia tem de estar compreendido entre %d e %d \n",1,dias_do_mes(ano_dt1,mes_dt1)); |
lmsousa | 1:0756a87e335f | 54 | } while(!((dia_dt1>=1) && (dia_dt1 <= dias_do_mes(ano_dt1,mes_dt1)))); |
lmsousa | 0:dce171f603a8 | 55 | |
lmsousa | 1:0756a87e335f | 56 | do { |
lmsousa | 1:0756a87e335f | 57 | printf("\r\nIntroduza a hora da Data 1: (%d-%d): ",0,23); |
lmsousa | 1:0756a87e335f | 58 | scanf("%d",&hora_dt1); |
lmsousa | 1:0756a87e335f | 59 | if (!((hora_dt1>=0) && (hora_dt1 <= 23))) |
lmsousa | 1:0756a87e335f | 60 | printf("\r\nA hora tem de estar compreendida entre %d e %d \n",0,23); |
lmsousa | 1:0756a87e335f | 61 | } while(!((hora_dt1>=0) && (hora_dt1 <= 23))); |
lmsousa | 1:0756a87e335f | 62 | |
lmsousa | 1:0756a87e335f | 63 | do { |
lmsousa | 1:0756a87e335f | 64 | printf("\r\nIntroduza os minutos da Data 1: (%d-%d): ",0,59); |
lmsousa | 1:0756a87e335f | 65 | scanf("%d",&min_dt1); |
lmsousa | 1:0756a87e335f | 66 | if (!((min_dt1>=0) && (min_dt1 <= 59))) |
lmsousa | 1:0756a87e335f | 67 | printf("\r\nOs minutos devem estar compreendidos entre %d e %d \n",0,59); |
lmsousa | 1:0756a87e335f | 68 | } while(!((min_dt1>=0) && (min_dt1 <= 59))); |
lmsousa | 0:dce171f603a8 | 69 | |
lmsousa | 0:dce171f603a8 | 70 | |
lmsousa | 1:0756a87e335f | 71 | printf("\r\n\nIntroducao da Data 2"); |
lmsousa | 1:0756a87e335f | 72 | do { |
lmsousa | 1:0756a87e335f | 73 | printf("\r\nIntroduza o ano da Data 2: (%d-%d): ",limite_ano_min,limite_ano_max); |
lmsousa | 1:0756a87e335f | 74 | scanf("%d",&ano_dt2); |
lmsousa | 1:0756a87e335f | 75 | if (!((ano_dt2>=limite_ano_min)&&(ano_dt2<=limite_ano_max))) |
lmsousa | 1:0756a87e335f | 76 | printf("\r\nO ano tem de estar compreendido entre %d e %d ",limite_ano_min,limite_ano_max); |
lmsousa | 0:dce171f603a8 | 77 | |
lmsousa | 1:0756a87e335f | 78 | } while(!((ano_dt2>=limite_ano_min)&&(ano_dt2<=limite_ano_max))); |
lmsousa | 0:dce171f603a8 | 79 | |
lmsousa | 1:0756a87e335f | 80 | do { |
lmsousa | 1:0756a87e335f | 81 | printf("\r\nIntroduza o mes da Data 2: (%d-%d): ",1,12); |
lmsousa | 1:0756a87e335f | 82 | scanf("%d",&mes_dt2); |
lmsousa | 1:0756a87e335f | 83 | if (!((mes_dt2>=1)&&(mes_dt2<=12))) |
lmsousa | 1:0756a87e335f | 84 | printf("\r\nO mes tem de estar compreendido entre %d e %d \n",1,12); |
lmsousa | 1:0756a87e335f | 85 | } while(!((mes_dt2>=1)&&(mes_dt2<=12))); |
lmsousa | 0:dce171f603a8 | 86 | |
lmsousa | 1:0756a87e335f | 87 | do { |
lmsousa | 1:0756a87e335f | 88 | printf("\r\nIntroduza o dia da Data 2: (%d-%d): ",1,dias_do_mes(ano_dt2,mes_dt2)); |
lmsousa | 1:0756a87e335f | 89 | scanf("%d",&dia_dt2); |
lmsousa | 1:0756a87e335f | 90 | if (!((dia_dt2>=1) && (dia_dt2 <= dias_do_mes(ano_dt2,mes_dt2)))) |
lmsousa | 1:0756a87e335f | 91 | printf("\r\nO dia tem de estar compreendido entre %d e %d \n",1,dias_do_mes(ano_dt2,mes_dt2)); |
lmsousa | 1:0756a87e335f | 92 | } while(!((dia_dt2>=1) && (dia_dt2 <= dias_do_mes(ano_dt2,mes_dt2)))); |
lmsousa | 0:dce171f603a8 | 93 | |
lmsousa | 1:0756a87e335f | 94 | do { |
lmsousa | 1:0756a87e335f | 95 | printf("\r\nIntroduza a hora da Data 2: (%d-%d): ",0,23); |
lmsousa | 1:0756a87e335f | 96 | scanf("%d",&hora_dt2); |
lmsousa | 1:0756a87e335f | 97 | if (!((hora_dt2>=0) && (hora_dt2 <= 23))) |
lmsousa | 1:0756a87e335f | 98 | printf("\r\nA hora tem de estar compreendida entre %d e %d \n",0,23); |
lmsousa | 1:0756a87e335f | 99 | } while(!((hora_dt2>=0) && (hora_dt2 <= 23))); |
lmsousa | 0:dce171f603a8 | 100 | |
lmsousa | 1:0756a87e335f | 101 | do { |
lmsousa | 1:0756a87e335f | 102 | printf("\r\nIntroduza os minutos da Data 1: (%d-%d): ",0,59); |
lmsousa | 1:0756a87e335f | 103 | scanf("%d",&min_dt2); |
lmsousa | 1:0756a87e335f | 104 | if (!((min_dt2>=0) && (min_dt2 <= 59))) |
lmsousa | 1:0756a87e335f | 105 | printf("\r\nOs minutos devem estar compreendidos entre %d e %d \n",0,59); |
lmsousa | 1:0756a87e335f | 106 | } while(!((min_dt2>=0) && (min_dt2 <= 59))); |
lmsousa | 1:0756a87e335f | 107 | |
lmsousa | 1:0756a87e335f | 108 | score_dt1 = dif_data(limite_ano_min,1,1,ano_dt1,mes_dt1,dia_dt1); |
lmsousa | 1:0756a87e335f | 109 | score_dt2 = dif_data(limite_ano_min,1,1,ano_dt2,mes_dt2,dia_dt2); |
lmsousa | 0:dce171f603a8 | 110 | |
lmsousa | 1:0756a87e335f | 111 | tmins1= hora_dt1*60+min_dt1; //reduz primeira hora a minutos |
lmsousa | 1:0756a87e335f | 112 | tmins2= hora_dt2*60+min_dt2; //reduz segunda hora a minutos |
lmsousa | 0:dce171f603a8 | 113 | |
lmsousa | 1:0756a87e335f | 114 | if ((score_dt1>score_dt2)||((score_dt1 == score_dt2)&&(tmins1>tmins2))) |
lmsousa | 1:0756a87e335f | 115 | /* |
lmsousa | 1:0756a87e335f | 116 | Se a primeira data for maior que a segunda |
lmsousa | 1:0756a87e335f | 117 | troca as datas de forma a ficar data2>data1 |
lmsousa | 1:0756a87e335f | 118 | */ |
lmsousa | 1:0756a87e335f | 119 | { |
lmsousa | 1:0756a87e335f | 120 | tmp_ano=ano_dt1; |
lmsousa | 1:0756a87e335f | 121 | tmp_mes=mes_dt1; |
lmsousa | 1:0756a87e335f | 122 | tmp_dia=dia_dt1; |
lmsousa | 1:0756a87e335f | 123 | tmp_hora=hora_dt1; |
lmsousa | 1:0756a87e335f | 124 | tmp_min=min_dt1; |
lmsousa | 0:dce171f603a8 | 125 | |
lmsousa | 1:0756a87e335f | 126 | ano_dt1=ano_dt2; |
lmsousa | 1:0756a87e335f | 127 | mes_dt1=mes_dt2; |
lmsousa | 1:0756a87e335f | 128 | dia_dt1=dia_dt2; |
lmsousa | 1:0756a87e335f | 129 | hora_dt1=hora_dt2; |
lmsousa | 1:0756a87e335f | 130 | min_dt1=min_dt2; |
lmsousa | 0:dce171f603a8 | 131 | |
lmsousa | 1:0756a87e335f | 132 | ano_dt2=tmp_ano; |
lmsousa | 1:0756a87e335f | 133 | mes_dt2=tmp_mes; |
lmsousa | 1:0756a87e335f | 134 | dia_dt2=tmp_dia; |
lmsousa | 1:0756a87e335f | 135 | hora_dt2=tmp_hora; |
lmsousa | 1:0756a87e335f | 136 | min_dt2=tmp_min; |
lmsousa | 0:dce171f603a8 | 137 | |
lmsousa | 1:0756a87e335f | 138 | tmins1= hora_dt1*60+min_dt1; //Depois da troca recalcula |
lmsousa | 1:0756a87e335f | 139 | tmins2= hora_dt2*60+min_dt2; //tmins1 e tmins2 |
lmsousa | 1:0756a87e335f | 140 | } |
lmsousa | 0:dce171f603a8 | 141 | |
lmsousa | 1:0756a87e335f | 142 | printf("\r\n\nData 1: %d-%d-%d %d horas e %d minutos",dia_dt1,mes_dt1,ano_dt1,hora_dt1,min_dt1); |
lmsousa | 1:0756a87e335f | 143 | printf("\r\nData 2: %d-%d-%d %d horas e %d minutos",dia_dt2,mes_dt2,ano_dt2,hora_dt2,min_dt2); |
lmsousa | 1:0756a87e335f | 144 | |
lmsousa | 1:0756a87e335f | 145 | if (tmins2>=tmins1) { //Se tmins2>tmins1 contabiliza dias completos mais algumas horas |
lmsousa | 1:0756a87e335f | 146 | horas=(tmins2-tmins1)/60; //diferenca em horas |
lmsousa | 1:0756a87e335f | 147 | minutos=(tmins2-tmins1)%60; //diferenca em minutos |
lmsousa | 1:0756a87e335f | 148 | printf("\r\n\nA diferenca entre estas duas datas e de %ld dias, %d horas e %d minutos. ",dif_data(ano_dt1,mes_dt1,dia_dt1,ano_dt2,mes_dt2,dia_dt2),horas,minutos); |
lmsousa | 1:0756a87e335f | 149 | } else { //Se tmins1>tmins2 retiramos um dia e fazemos a conta ah diferenca de horas |
lmsousa | 1:0756a87e335f | 150 | horas=(24*60-tmins1+tmins2)/60; //diferenca em horas |
lmsousa | 1:0756a87e335f | 151 | minutos=(24*60-tmins1+tmins2)%60; //diferenca em minutos |
lmsousa | 1:0756a87e335f | 152 | printf("\r\n\nA diferenca entre estas duas datas e de %ld dias. %d horas e %d minutos. ",dif_data(ano_dt1,mes_dt1,dia_dt1,ano_dt2,mes_dt2,dia_dt2)-1,horas,minutos); |
lmsousa | 1:0756a87e335f | 153 | } |
lmsousa | 0:dce171f603a8 | 154 | |
lmsousa | 0:dce171f603a8 | 155 | |
lmsousa | 0:dce171f603a8 | 156 | } |
lmsousa | 0:dce171f603a8 | 157 | |
lmsousa | 0:dce171f603a8 | 158 | int bissexto(int ano) |
lmsousa | 0:dce171f603a8 | 159 | { |
lmsousa | 1:0756a87e335f | 160 | if((ano%400==0)||((ano%4==0)&&(ano%100!=0))) |
lmsousa | 1:0756a87e335f | 161 | return 1; |
lmsousa | 1:0756a87e335f | 162 | else |
lmsousa | 1:0756a87e335f | 163 | return 0; |
lmsousa | 0:dce171f603a8 | 164 | } |
lmsousa | 0:dce171f603a8 | 165 | |
lmsousa | 0:dce171f603a8 | 166 | int dias_do_ano(int ano) |
lmsousa | 0:dce171f603a8 | 167 | { |
lmsousa | 1:0756a87e335f | 168 | if (bissexto(ano))return 366; |
lmsousa | 1:0756a87e335f | 169 | else return 365; |
lmsousa | 0:dce171f603a8 | 170 | } |
lmsousa | 0:dce171f603a8 | 171 | |
lmsousa | 0:dce171f603a8 | 172 | int dias_do_mes(int ano,int mes) |
lmsousa | 0:dce171f603a8 | 173 | { |
lmsousa | 1:0756a87e335f | 174 | if (mes == 1||mes == 3||mes == 5||mes == 7||mes == 8||mes == 10||mes == 12) |
lmsousa | 1:0756a87e335f | 175 | return 31; |
lmsousa | 1:0756a87e335f | 176 | else if(mes == 4||mes == 6||mes == 9||mes == 11) |
lmsousa | 1:0756a87e335f | 177 | return 30; |
lmsousa | 1:0756a87e335f | 178 | else if (mes == 2) |
lmsousa | 0:dce171f603a8 | 179 | if (bissexto (ano)) |
lmsousa | 1:0756a87e335f | 180 | return 29; |
lmsousa | 0:dce171f603a8 | 181 | else |
lmsousa | 1:0756a87e335f | 182 | return 28; |
lmsousa | 1:0756a87e335f | 183 | else return 255; //erro!!! mes invalido// |
lmsousa | 0:dce171f603a8 | 184 | } |
lmsousa | 0:dce171f603a8 | 185 | |
lmsousa | 0:dce171f603a8 | 186 | int dias_ate_fim_mes(int ano,int mes,int dia) |
lmsousa | 0:dce171f603a8 | 187 | { |
lmsousa | 1:0756a87e335f | 188 | return (dias_do_mes(ano,mes)-dia); |
lmsousa | 0:dce171f603a8 | 189 | } |
lmsousa | 0:dce171f603a8 | 190 | |
lmsousa | 0:dce171f603a8 | 191 | int dias_dos_meses_intermedios(int ano,int mes1,int mes2) |
lmsousa | 0:dce171f603a8 | 192 | { |
lmsousa | 1:0756a87e335f | 193 | int i,dias=0; |
lmsousa | 1:0756a87e335f | 194 | i=mes1; |
lmsousa | 1:0756a87e335f | 195 | i++; /*O primeiro e o ultimo mes nao sao contabilizados. So os intermedios*/ |
lmsousa | 1:0756a87e335f | 196 | while (i<mes2) { |
lmsousa | 1:0756a87e335f | 197 | dias = dias + dias_do_mes(ano,i); |
lmsousa | 1:0756a87e335f | 198 | i++; |
lmsousa | 1:0756a87e335f | 199 | } |
lmsousa | 1:0756a87e335f | 200 | return dias; |
lmsousa | 0:dce171f603a8 | 201 | } |
lmsousa | 0:dce171f603a8 | 202 | |
lmsousa | 0:dce171f603a8 | 203 | int dias_dos_anos_intermedios(int ano1,int ano2) |
lmsousa | 0:dce171f603a8 | 204 | { |
lmsousa | 1:0756a87e335f | 205 | int i,dias = 0; |
lmsousa | 1:0756a87e335f | 206 | i=ano1; |
lmsousa | 1:0756a87e335f | 207 | i++; /*O primeiro e o ultimo ano nao sao contabilizados. So os intermedios*/ |
lmsousa | 1:0756a87e335f | 208 | while (i<ano2) { |
lmsousa | 1:0756a87e335f | 209 | dias = dias + dias_do_ano(i); |
lmsousa | 1:0756a87e335f | 210 | i++; |
lmsousa | 1:0756a87e335f | 211 | } |
lmsousa | 1:0756a87e335f | 212 | return dias; |
lmsousa | 0:dce171f603a8 | 213 | } |
lmsousa | 0:dce171f603a8 | 214 | |
lmsousa | 1:0756a87e335f | 215 | int dias_ate_fim_ano(int ano,int mes,int dia) |
lmsousa | 0:dce171f603a8 | 216 | { |
lmsousa | 1:0756a87e335f | 217 | return dias_ate_fim_mes(ano,mes,dia)+ dias_dos_meses_intermedios(ano,mes,13); |
lmsousa | 1:0756a87e335f | 218 | /* Calcula dias ate fim do ano. Como os extremos nao sao contabilizados |
lmsousa | 1:0756a87e335f | 219 | envia-se 13 para contabilizar Mes de Dezembro */ |
lmsousa | 0:dce171f603a8 | 220 | } |
lmsousa | 0:dce171f603a8 | 221 | |
lmsousa | 0:dce171f603a8 | 222 | int dias_desde_principio_ano(int ano,int mes,int dia) |
lmsousa | 0:dce171f603a8 | 223 | { |
lmsousa | 1:0756a87e335f | 224 | return dias_dos_meses_intermedios(ano,0,mes)+ dia; |
lmsousa | 1:0756a87e335f | 225 | /*Calcula dias desde principio do ano. |
lmsousa | 1:0756a87e335f | 226 | Como os extremos nao sao contabilizados |
lmsousa | 1:0756a87e335f | 227 | envia-se 0 para contabilizar Janeiro */ |
lmsousa | 0:dce171f603a8 | 228 | } |
lmsousa | 0:dce171f603a8 | 229 | |
lmsousa | 0:dce171f603a8 | 230 | long int dif_data(int ano1,int mes1,int dia1,int ano2,int mes2,int dia2) |
lmsousa | 0:dce171f603a8 | 231 | { |
lmsousa | 1:0756a87e335f | 232 | if (ano1 == ano2 && mes1 == mes2) |
lmsousa | 1:0756a87e335f | 233 | return dia2-dia1; |
lmsousa | 1:0756a87e335f | 234 | else if(ano1 == ano2 && mes1 != mes2) |
lmsousa | 1:0756a87e335f | 235 | return dias_ate_fim_mes(ano1,mes1,dia1) //Dias ate ao fim do 1o mes// |
lmsousa | 1:0756a87e335f | 236 | + dias_dos_meses_intermedios(ano1,mes1,mes2) //Dias dos meses intermedios// |
lmsousa | 1:0756a87e335f | 237 | + dia2; // Dias do ultimo mes // |
lmsousa | 0:dce171f603a8 | 238 | else |
lmsousa | 1:0756a87e335f | 239 | return dias_ate_fim_ano(ano1,mes1,dia1) |
lmsousa | 1:0756a87e335f | 240 | + dias_dos_anos_intermedios(ano1,ano2) //Calcula dias dos anos intermedios// |
lmsousa | 1:0756a87e335f | 241 | + dias_desde_principio_ano(ano2,mes2,dia2); |
lmsousa | 0:dce171f603a8 | 242 | } |
lmsousa | 0:dce171f603a8 | 243 | |
lmsousa | 0:dce171f603a8 | 244 |