1 00:00:00,180 --> 00:00:29,719 Venga, vamos a conectar con esto otra vez. Estábamos con el ejercicio de dime si la fecha que te doy con día, mes y año es válida. Entonces, primero validábamos el mes, fecha no válida y para no anidar aquí un ELSE y que me quedara todo anidado para no ponerlo con un ELSE, pues nos íbamos con esta sentencia. 2 00:00:29,719 --> 00:00:32,140 así la incorporábamos, no es una sentencia 3 00:00:32,140 --> 00:00:34,259 que sea especialmente recomendable 4 00:00:34,259 --> 00:00:35,880 usar, porque 5 00:00:35,880 --> 00:00:38,060 corta un poco la elegibilidad del código 6 00:00:38,060 --> 00:00:39,840 tienes un código larguísimo y tú 7 00:00:39,840 --> 00:00:42,020 te haces idea de que el programa hace esto, hace lo otro 8 00:00:42,020 --> 00:00:43,960 pero claro, si tiene un system.exe 9 00:00:43,960 --> 00:00:45,899 y da el principio, hay una rama por la que sale 10 00:00:45,899 --> 00:00:48,000 y termina y no hace más, entonces como que se te 11 00:00:48,000 --> 00:00:49,600 escapa un poco la estructura del código 12 00:00:49,600 --> 00:00:51,700 no es muy recomendable, pero bueno 13 00:00:51,700 --> 00:00:53,700 aquí como estos ejercicios que estamos haciendo son tanto 14 00:00:53,700 --> 00:00:54,880 if, else y if anidados 15 00:00:54,880 --> 00:00:57,679 para no tener que encontrarnos 16 00:00:57,679 --> 00:00:59,000 con algo tan farragoso 17 00:00:59,000 --> 00:01:02,079 bueno, habíamos dicho, si el mes no es válido 18 00:01:02,079 --> 00:01:03,659 ya directamente nos vamos, ahora 19 00:01:03,659 --> 00:01:05,579 si el mes es válido, estamos aquí 20 00:01:05,579 --> 00:01:07,599 si el mes es válido 21 00:01:07,599 --> 00:01:08,819 ¿qué hacemos? 22 00:01:10,079 --> 00:01:11,799 pues vamos a ver 23 00:01:11,799 --> 00:01:13,579 la condición de que sea de 31 días 24 00:01:13,579 --> 00:01:16,019 que la hemos puesto, tanto así 25 00:01:16,019 --> 00:01:17,739 como así, ambas son la misma 26 00:01:17,739 --> 00:01:18,939 ambas son la misma 27 00:01:18,939 --> 00:01:21,719 y ahora en función de si el mes 28 00:01:21,719 --> 00:01:23,640 es de 31 días, es febrero 29 00:01:23,640 --> 00:01:25,659 o restante que es de 30 30 00:01:25,659 --> 00:01:27,359 hago una cosa u otra 31 00:01:27,359 --> 00:01:29,859 y ese que hago es esta asignación 32 00:01:29,859 --> 00:01:31,099 luego 33 00:01:31,099 --> 00:01:33,959 una sentencia if 34 00:01:33,959 --> 00:01:36,299 que lo único que hace dentro es una asignación 35 00:01:36,299 --> 00:01:38,180 la podemos hacer con el operador 36 00:01:38,180 --> 00:01:40,000 ternario, por esto había 37 00:01:40,000 --> 00:01:41,620 comentado esto 38 00:01:41,620 --> 00:01:43,579 entonces, si el mes es de 39 00:01:43,579 --> 00:01:46,159 31 días, ¿qué le quiero asignar 40 00:01:46,159 --> 00:01:48,099 a día máximo? pues si el mes 41 00:01:48,099 --> 00:01:49,859 es de 31 días, a día máximo 42 00:01:49,859 --> 00:01:50,659 le quiero dar 43 00:01:50,659 --> 00:01:53,359 31, perdón, 31 44 00:01:53,359 --> 00:01:55,840 vale, y he puesto 45 00:01:55,840 --> 00:01:56,819 dos interrogaciones 46 00:01:56,819 --> 00:02:00,599 ¿Qué pasa si mes no es de 31 días? 47 00:02:00,980 --> 00:02:02,879 Me abro aquí otra vez otra condición 48 00:02:02,879 --> 00:02:04,340 Me abro esta 49 00:02:04,340 --> 00:02:06,420 Si mes es igual a 2 50 00:02:06,420 --> 00:02:07,120 ¿Vale? 51 00:02:09,599 --> 00:02:10,759 Si mes 52 00:02:10,759 --> 00:02:11,340 Uy 53 00:02:11,340 --> 00:02:14,860 Si mes es 54 00:02:14,860 --> 00:02:16,539 Igual a 2 55 00:02:16,539 --> 00:02:19,319 Entonces aquí me abro 56 00:02:19,319 --> 00:02:21,400 Esta rama 57 00:02:21,400 --> 00:02:22,560 Le asigno 28 58 00:02:22,560 --> 00:02:24,319 ¿Y qué pasa si no? 59 00:02:24,460 --> 00:02:25,460 Pues le asigno 30 60 00:02:25,460 --> 00:02:27,379 ¿Vale? Entonces todo este if 61 00:02:27,379 --> 00:02:29,360 El save se convierte 62 00:02:29,360 --> 00:02:29,960 En esto 63 00:02:29,960 --> 00:02:33,340 ¿Vale? Se convierte en esto 64 00:02:33,340 --> 00:02:35,180 Y hombre, pues más claro 65 00:02:35,180 --> 00:02:36,080 Más claro, ¿verdad? 66 00:02:37,500 --> 00:02:39,639 Vamos a hacer una asignación a una variable 67 00:02:39,639 --> 00:02:40,979 Que es lo que estamos haciendo aquí 68 00:02:40,979 --> 00:02:42,879 Una asignación a una variable 69 00:02:42,879 --> 00:02:45,219 En lugar de desglosarlo 70 00:02:45,219 --> 00:02:47,379 If, el save, el save, como lo único que hago 71 00:02:47,379 --> 00:02:48,479 Dentro, lo único 72 00:02:48,479 --> 00:02:51,599 Es una asignación y a la misma variable 73 00:02:51,599 --> 00:02:52,400 Y a la misma 74 00:02:52,400 --> 00:02:54,159 Como tengo esa estructura 75 00:02:54,159 --> 00:02:56,900 que lo único que hago dentro es una asignación 76 00:02:56,900 --> 00:02:58,659 y a la misma en todas las ramas 77 00:02:58,659 --> 00:02:59,840 pues lo puedo hacer así 78 00:02:59,840 --> 00:03:01,900 oye, esta variable, ¿qué le damos? 79 00:03:02,120 --> 00:03:04,400 pues no sé, le podemos dar 31, le podemos dar 28 80 00:03:04,400 --> 00:03:06,340 o le podemos dar 30, son estos tres valores 81 00:03:06,340 --> 00:03:07,699 31, 28 y 30 82 00:03:07,699 --> 00:03:10,800 31, 28 y 30, en función de que si lo damos 83 00:03:10,800 --> 00:03:12,979 si se cumple esta condición 84 00:03:12,979 --> 00:03:13,740 le doy 31 85 00:03:13,740 --> 00:03:16,620 y si no se cumple, pues me hago otra pregunta 86 00:03:16,620 --> 00:03:18,340 ¿es 2? pues le doy esta 87 00:03:18,340 --> 00:03:20,319 ¿que no se cumple esa tampoco? pues esta otra 88 00:03:20,319 --> 00:03:22,259 ¿vale? 89 00:03:22,259 --> 00:03:27,539 ¿Veis que esta sentencia de arriba es lo mismo que todo este if, el seif? 90 00:03:33,550 --> 00:03:44,669 Bueno, pues ahora ya que tenemos día máximo asignado, la validez del día la podemos comprobar de esta manera. 91 00:03:44,669 --> 00:03:55,590 Si el día es menor que 1 o es mayor que el día máximo, que sea, que eso depende del mes, pues fecha no válida. 92 00:03:56,069 --> 00:04:01,090 y la validación 93 00:04:01,090 --> 00:04:03,270 del año, porque la combinación 94 00:04:03,270 --> 00:04:04,430 de mes y día ya los tenemos 95 00:04:04,430 --> 00:04:07,110 como no han dicho lo de bisiesto, este programa 96 00:04:07,110 --> 00:04:08,990 simplifica mucho, lo podríais ampliar 97 00:04:08,990 --> 00:04:10,050 al caso bisiesto 98 00:04:10,050 --> 00:04:13,050 el año, pues es que no está muy bien especificado 99 00:04:13,050 --> 00:04:15,110 si fuera un examen habría que especificarlo mejor 100 00:04:15,110 --> 00:04:16,990 ¿qué años le damos 101 00:04:16,990 --> 00:04:18,870 válidos desde el comienzo 102 00:04:18,870 --> 00:04:20,970 del planeta tierra? pues hombre, habría que poner 103 00:04:20,970 --> 00:04:23,009 si es menor que 45.000 millones 104 00:04:23,009 --> 00:04:23,649 de años 105 00:04:23,649 --> 00:04:26,910 entonces venga, vamos a darle de nuestra era 106 00:04:26,910 --> 00:04:58,089 Ahí ya está. Entonces, podemos directamente esa condición también ponerla aquí. Si año es menor que cero o año es mayor que 2025, pues lo mismo, fecha no válida. 107 00:04:58,089 --> 00:05:05,319 vale, pues nada, estamos validando 108 00:05:05,319 --> 00:05:06,160 mes y año 109 00:05:06,160 --> 00:05:10,550 si ambos son válidos 110 00:05:10,550 --> 00:05:12,870 si ambos son válidos, no habremos 111 00:05:12,870 --> 00:05:14,389 abandonado el programa por aquí 112 00:05:14,389 --> 00:05:15,670 no lo habremos abandonado 113 00:05:15,670 --> 00:05:18,009 entonces habremos llegado aquí 114 00:05:18,009 --> 00:05:20,750 y al haber llegado aquí, ya lo único que nos 115 00:05:20,750 --> 00:05:21,610 falta es 116 00:05:21,610 --> 00:05:24,829 comprobar si la combinación 117 00:05:24,829 --> 00:05:26,269 de día y mes es correcta 118 00:05:26,269 --> 00:05:28,170 y eso lo comprobamos aquí 119 00:05:28,170 --> 00:05:32,199 entonces el programa se queda cortito 120 00:05:32,199 --> 00:05:33,519 nos ha quedado largo porque he puesto 121 00:05:33,519 --> 00:05:35,000 este boolean 122 00:05:35,000 --> 00:05:37,740 dos veces, de las dos maneras 123 00:05:37,740 --> 00:05:38,959 y esto de aquí, pero 124 00:05:38,959 --> 00:05:57,720 vale, vale, vamos a 125 00:05:57,720 --> 00:06:00,040 modificar un poco este programa y así le vamos 126 00:06:00,040 --> 00:06:01,759 cogiendo cierta soltura 127 00:06:01,759 --> 00:06:03,720 a los stream, en lugar de 128 00:06:03,720 --> 00:06:05,740 pedírmelo así, que es feo, me mete 129 00:06:05,740 --> 00:06:07,720 el día, me mete el mes, me mete el año, que me meta la fecha 130 00:06:07,720 --> 00:06:09,860 pues separada por guiones 131 00:06:09,860 --> 00:06:11,800 o por barras, como uno quiera, por ejemplo 132 00:06:11,800 --> 00:06:13,680 en lugar 133 00:06:13,680 --> 00:06:15,639 de pedirle así 134 00:06:15,639 --> 00:06:17,660 la fecha, lo voy a comentar 135 00:06:17,660 --> 00:06:19,100 todo, en lugar de pedirle así 136 00:06:19,100 --> 00:06:20,860 Se la vamos a pedir así 137 00:06:20,860 --> 00:06:23,639 Control 7 138 00:06:23,639 --> 00:06:29,730 Puede ser 139 00:06:29,730 --> 00:06:31,670 Igual cada clip se tiene habilitadas 140 00:06:31,670 --> 00:06:32,670 Algunas cosas u otras 141 00:06:32,670 --> 00:06:34,370 Vamos a pedírselo así 142 00:06:34,370 --> 00:06:37,730 Introduzca fecha 143 00:06:37,730 --> 00:06:44,439 Y le decimos 144 00:06:44,439 --> 00:06:48,959 Esa fecha 145 00:06:48,959 --> 00:06:50,519 Métela como día 146 00:06:50,519 --> 00:06:57,379 Més 147 00:06:57,379 --> 00:07:01,089 Y año 148 00:07:01,089 --> 00:07:06,790 Vale 149 00:07:06,790 --> 00:07:08,910 Día, mes y año 150 00:07:08,910 --> 00:07:11,829 Entonces ahora ya 151 00:07:11,829 --> 00:07:14,149 Si el usuario introduce la fecha así 152 00:07:14,149 --> 00:07:18,449 Pues entonces la fecha se va a guardar en un string 153 00:07:18,449 --> 00:07:19,990 Porque está metida con 154 00:07:19,990 --> 00:07:21,949 Barras 155 00:07:21,949 --> 00:07:22,930 Entonces esto es una cadena 156 00:07:22,930 --> 00:07:28,230 Luego la leeremos con nextline 157 00:07:28,230 --> 00:07:29,350 Que es como se lee un string 158 00:07:29,350 --> 00:07:35,329 Vale, entonces ¿cuál es nuestro problema? 159 00:07:35,430 --> 00:07:36,889 Que esta aplicación necesita 160 00:07:36,889 --> 00:07:39,610 El mes, el día y el año como numerito 161 00:07:39,610 --> 00:07:41,209 Meta como numerito 162 00:07:41,209 --> 00:07:42,730 Yo voy a necesitar estas tres variables 163 00:07:42,730 --> 00:07:44,209 voy a necesitar 164 00:07:44,209 --> 00:07:46,410 el día 165 00:07:46,410 --> 00:07:49,149 el mes y el año 166 00:07:49,149 --> 00:07:51,209 las necesito las tres 167 00:07:51,209 --> 00:07:52,449 día, mes y año 168 00:07:52,449 --> 00:07:55,089 para poder hacer la validación correspondiente 169 00:07:55,089 --> 00:07:57,269 pero las tengo que sacar 170 00:07:57,269 --> 00:07:59,129 de aquí que están en modo carácter 171 00:07:59,129 --> 00:08:01,290 y además metidas entre barritas y todo eso 172 00:08:01,290 --> 00:08:05,269 vale, pero bueno, conocemos el método 173 00:08:05,269 --> 00:08:06,269 charAt 174 00:08:06,269 --> 00:08:09,430 de string que me permite obtener el carácter 175 00:08:09,430 --> 00:08:10,050 de una posición 176 00:08:10,050 --> 00:08:14,810 pues entonces la concatenación del carácter 0 y 1 177 00:08:14,810 --> 00:08:18,769 me dará el día pero todavía en string 178 00:08:18,769 --> 00:08:22,569 es decir, vamos a coger el día 179 00:08:22,569 --> 00:08:26,850 pero en texto, el día en texto cuál será 180 00:08:26,850 --> 00:08:30,470 la concatenación de fecha punto char 181 00:08:30,470 --> 00:08:34,370 at 0 más 182 00:08:34,370 --> 00:08:38,929 la concatenación de fecha punto char at 1 183 00:08:38,929 --> 00:08:41,269 Sería esto, ¿verdad? 184 00:08:42,690 --> 00:08:46,289 Fecha charat 0 es este primer carácter 185 00:08:46,289 --> 00:08:48,490 Y fecha charat 1 será este segundo 186 00:08:48,490 --> 00:08:52,509 Si concateno los dos, será el día pero en modo texto 187 00:08:52,509 --> 00:08:55,389 Porque es la concatenación de las dos cifras en char 188 00:08:55,389 --> 00:08:59,590 De nuevo nos sale esta cosa roja 189 00:08:59,590 --> 00:09:02,129 Que ya sabemos lo que es porque lo hemos leído un montón de veces 190 00:09:02,129 --> 00:09:05,190 Estamos concatenando 191 00:09:05,190 --> 00:09:07,809 Tratando de concatenar un char 192 00:09:07,809 --> 00:09:09,370 y otro char 193 00:09:09,370 --> 00:09:11,970 el operador más 194 00:09:11,970 --> 00:09:13,190 ya sabemos 195 00:09:13,190 --> 00:09:16,129 que funciona siempre como suma 196 00:09:16,129 --> 00:09:17,509 no como concatenación 197 00:09:17,509 --> 00:09:19,470 salvo en un caso 198 00:09:19,470 --> 00:09:21,970 en el caso de que alguno de los dos 199 00:09:21,970 --> 00:09:22,950 sea un string 200 00:09:22,950 --> 00:09:26,169 si alguno de los dos operandos es un string 201 00:09:26,169 --> 00:09:27,570 entonces es concatenar 202 00:09:27,570 --> 00:09:29,710 pero aquí ninguno es un string 203 00:09:29,710 --> 00:09:30,870 aquí los dos son char 204 00:09:30,870 --> 00:09:32,889 luego lo interpreta que suma 205 00:09:32,889 --> 00:09:35,190 y lo que hace es sumar el código ASCII 206 00:09:35,190 --> 00:09:37,090 de este primero con el código ASCII del segundo 207 00:09:37,090 --> 00:09:40,070 no queremos que sume eso 208 00:09:40,070 --> 00:09:41,710 queremos que haga la concatenación 209 00:09:41,710 --> 00:09:43,830 ¿vale? pues ¿cómo solucionamos esto? 210 00:09:45,690 --> 00:09:46,970 concatenamos con un string 211 00:09:46,970 --> 00:09:49,370 y ya se ha convertido automáticamente 212 00:09:49,370 --> 00:09:51,169 esto en concatenación 213 00:09:51,169 --> 00:09:54,529 entonces 214 00:09:54,529 --> 00:09:57,250 ahora este más 215 00:09:57,250 --> 00:09:58,669 concatena 216 00:09:58,669 --> 00:10:00,990 un string vacío con un char 217 00:10:00,990 --> 00:10:03,450 ahora ya sí que es concatenar 218 00:10:03,450 --> 00:10:04,970 porque este es string 219 00:10:04,970 --> 00:10:06,529 es string, luego 220 00:10:06,529 --> 00:10:08,649 el total es concatenación 221 00:10:08,649 --> 00:10:11,029 luego el resultado se vuelve string 222 00:10:11,029 --> 00:10:12,690 que es el numerito que fuera 223 00:10:12,690 --> 00:10:15,409 y ahora todo eso es un string 224 00:10:15,409 --> 00:10:16,950 concatenado con un char 225 00:10:16,950 --> 00:10:19,230 pues de nuevo este operador 226 00:10:19,230 --> 00:10:21,070 se convierte en concatenación 227 00:10:21,070 --> 00:10:23,230 porque todo lo de la izquierda 228 00:10:23,230 --> 00:10:23,789 es un string 229 00:10:23,789 --> 00:10:27,169 luego ahora ya si en día 230 00:10:27,169 --> 00:10:29,149 texto tendré la cadena 231 00:10:29,149 --> 00:10:30,990 0, 1, 23 232 00:10:30,990 --> 00:10:32,649 la cadena que sea en modo texto 233 00:10:32,649 --> 00:10:35,350 vamos a obtener la cadena en modo texto 234 00:10:35,350 --> 00:10:37,169 del día y del 235 00:10:37,169 --> 00:10:39,009 año y luego ya las cambiamos a número 236 00:10:39,009 --> 00:10:44,360 mes en texto 237 00:10:44,360 --> 00:10:46,460 el mes en texto 238 00:10:46,460 --> 00:10:48,179 sería lo mismo 239 00:10:48,179 --> 00:10:49,759 la concatenación 240 00:10:49,759 --> 00:10:52,080 no la suma de los caracteres asti 241 00:10:52,080 --> 00:10:54,100 la concatenación 242 00:10:54,100 --> 00:10:56,000 pero ahora sí, del char 0 243 00:10:56,000 --> 00:10:57,500 1, 2 y 3 244 00:10:57,500 --> 00:10:59,879 del char en la posición 3 245 00:10:59,879 --> 00:11:02,100 con el char en la posición 246 00:11:02,100 --> 00:11:02,840 4 247 00:11:02,840 --> 00:11:06,019 eso sería el char en la posición 248 00:11:06,019 --> 00:11:06,899 3 que es este 249 00:11:06,899 --> 00:11:09,740 con el char en la posición 4 que es este 250 00:11:09,740 --> 00:11:11,299 Ya están concatenados 251 00:11:11,299 --> 00:11:16,399 Y me falta 252 00:11:16,399 --> 00:11:21,360 El año en texto 253 00:11:21,360 --> 00:11:27,240 Que sería 254 00:11:27,240 --> 00:11:28,840 Este caso, lo bajo abajo 255 00:11:28,840 --> 00:11:30,019 Porque este va a ser más largo 256 00:11:30,019 --> 00:11:31,700 Este sería 257 00:11:31,700 --> 00:11:35,379 0, 1, 2, 3 258 00:11:35,379 --> 00:11:37,039 4, 5, 6 259 00:11:37,039 --> 00:11:38,639 Del 6 en adelante 260 00:11:38,639 --> 00:11:40,940 Pues fecha charat 6 261 00:11:40,940 --> 00:11:43,500 Concatenado con fecha charat 7 262 00:11:43,500 --> 00:11:47,779 Concatenado con fecha 263 00:11:47,779 --> 00:11:50,960 charat 8 264 00:11:50,960 --> 00:11:53,559 y concatenado 265 00:11:53,559 --> 00:11:54,799 con fecha 266 00:11:54,799 --> 00:11:58,279 charat 9 267 00:11:58,279 --> 00:12:04,460 vale, pues ya tenemos 268 00:12:04,460 --> 00:12:07,139 todos los 269 00:12:07,139 --> 00:12:08,379 datos 270 00:12:08,379 --> 00:12:10,340 en cadena 271 00:12:10,340 --> 00:12:11,940 si 272 00:12:11,940 --> 00:12:21,019 en cadena, vale 273 00:12:21,019 --> 00:12:22,820 pero yo los necesito en número 274 00:12:22,820 --> 00:12:25,240 los necesito en número porque tengo que 275 00:12:25,240 --> 00:12:27,000 comparar con un número aquí 276 00:12:27,000 --> 00:12:29,360 comparo con un número aquí 277 00:12:29,360 --> 00:12:31,159 comparo aquí con esta condición 278 00:12:31,159 --> 00:12:32,639 si ese numerito es par o impar 279 00:12:32,639 --> 00:12:34,279 lo necesito en entero 280 00:12:34,279 --> 00:12:37,720 no me vale el 23 como cadena de caracteres 281 00:12:37,720 --> 00:12:39,559 2, 3, no me vale esa cadena 282 00:12:39,559 --> 00:12:41,679 2, 3 o 1, 2 283 00:12:41,679 --> 00:12:43,120 que es la que yo tengo aquí 284 00:12:43,120 --> 00:12:45,500 esa cadena no me vale, necesito el número 285 00:12:45,500 --> 00:12:47,340 entero correspondiente a esa cadena 286 00:12:47,340 --> 00:12:48,840 es lo que necesito 287 00:12:48,840 --> 00:12:50,860 ¿lo puedo hacer de alguna manera? 288 00:12:50,860 --> 00:12:52,720 pues sí, como vamos a 289 00:12:52,720 --> 00:12:54,059 tener que hacerlo muy a menudo 290 00:12:54,059 --> 00:12:56,779 vamos a incorporar desde ya 291 00:12:56,779 --> 00:12:59,419 Cómo hacer lo siguiente 292 00:12:59,419 --> 00:13:00,639 Que es esto 293 00:13:00,639 --> 00:13:03,809 Para cambiar 294 00:13:03,809 --> 00:13:05,470 Un número 295 00:13:05,470 --> 00:13:10,470 De modo 296 00:13:10,470 --> 00:13:12,570 Texto 297 00:13:12,570 --> 00:13:13,909 A modo 298 00:13:13,909 --> 00:13:16,149 Número entero 299 00:13:16,149 --> 00:13:22,279 Exacto 300 00:13:22,279 --> 00:13:24,279 Con ese, no lo habíamos usado antes, ¿no? 301 00:13:25,279 --> 00:13:25,879 ¿Lo habíamos usado ya? 302 00:13:26,980 --> 00:13:28,039 Ah, pues genial 303 00:13:28,039 --> 00:13:29,820 Ya lo sabemos, ¿vale? 304 00:13:30,240 --> 00:13:31,639 Vale, pues entonces 305 00:13:31,639 --> 00:13:32,480 Mi día 306 00:13:32,480 --> 00:13:37,659 Mi día, ¿cuál va a ser? 307 00:13:38,159 --> 00:13:43,620 El íntegre punto parseínt de día texto. 308 00:13:44,519 --> 00:13:46,740 Ya tengo mi día en entero. 309 00:13:48,039 --> 00:13:53,840 Mi mes, el íntegre punto parseínt de mi mes en texto. 310 00:13:55,220 --> 00:14:06,299 Y mi año, mi íntegre punto parseínt de mi año en texto. 311 00:14:06,960 --> 00:14:14,460 Y ya está, ya he parseado, que se dice, parsear en general, los anglicismos a mí no me gustan mucho, 312 00:14:14,639 --> 00:14:21,500 pero en estos contextos ya se han incorporado como lenguaje natural nuestro, entonces tenemos que usarlo. 313 00:14:21,980 --> 00:14:28,720 Entonces, parsear en programación siempre es unos datos que están en un formato convertirlos a otro formato. 314 00:14:29,460 --> 00:14:36,480 Pues ya hemos parseado unos datos que estaban en una fecha, que estaban en este formato, día, mes y año, 315 00:14:36,960 --> 00:14:46,840 Pues una fecha en formato string la hemos parseado o la hemos transformado a los tres números enteros correspondientes, ¿vale? 316 00:14:47,779 --> 00:14:56,899 Haciendo esto, hemos transformado o parseado una fecha en formato string a los tres numeritos, que son ya los que necesitamos aquí. 317 00:14:58,120 --> 00:14:59,580 ¿No funcionará esto? Pues no sé. 318 00:14:59,580 --> 00:15:06,399 en el momento de ejecutarlo 319 00:15:06,399 --> 00:15:08,700 se te interrumpiría el programa y te saldría 320 00:15:08,700 --> 00:15:10,519 en rojo number input type mismatch 321 00:15:10,519 --> 00:15:12,379 exception o number formal exception 322 00:15:12,379 --> 00:15:13,419 entonces se te pararía 323 00:15:13,419 --> 00:15:19,629 no, no, no 324 00:15:19,629 --> 00:15:21,090 el parseInt lo que 325 00:15:21,090 --> 00:15:24,110 valida es que las cifras sean solo numéricas 326 00:15:24,110 --> 00:15:25,110 para pasar al número entero 327 00:15:25,110 --> 00:15:27,230 para eso vale esa función 328 00:15:27,230 --> 00:15:29,129 porque lo que dices tú 329 00:15:29,129 --> 00:15:31,830 no hace falta hacerlo porque ya está 330 00:15:31,830 --> 00:15:34,529 el propio char, ya si tú lo interpretas 331 00:15:34,529 --> 00:15:36,029 como int y lo asignas a un int 332 00:15:36,029 --> 00:15:37,789 ya es el propio int 333 00:15:37,789 --> 00:15:39,250 no hay que hacer la transformación 334 00:15:39,250 --> 00:15:41,350 esta es una función más compleja 335 00:15:41,350 --> 00:15:43,789 que tiene este uso, tengo yo una cadena 336 00:15:43,789 --> 00:15:45,470 con cifras 322 337 00:15:45,470 --> 00:15:47,490 pues esa cadena con cifras 338 00:15:47,490 --> 00:15:49,950 322 se la transforma en el entero 339 00:15:49,950 --> 00:15:50,750 322 340 00:15:50,750 --> 00:15:53,850 vale, si hay una de repente 341 00:15:53,850 --> 00:15:55,409 eso le haría algo más 342 00:15:55,409 --> 00:15:55,889 claro 343 00:15:55,889 --> 00:15:58,889 por ejemplo 344 00:15:58,889 --> 00:16:05,009 si hacemos una prueba 345 00:16:05,009 --> 00:16:26,539 Por ejemplo, yo le meto el JJ del 67 del no sé qué, pues me dice, oye, yo he intentado coger esto, coger sus cifras numéricas para convertirlo en el entero que representa y no he podido porque lo que me has dado no es un número. 346 00:16:26,539 --> 00:16:28,720 ¿cómo voy a convertir esto en un entero? 347 00:16:28,779 --> 00:16:30,700 no puedo, no tiene sentido, no existe el entero 348 00:16:30,700 --> 00:16:31,080 JJ 349 00:16:31,080 --> 00:16:35,000 si existe el entero 67, este si podría 350 00:16:35,000 --> 00:16:37,100 pero el entero JJ no existe 351 00:16:37,100 --> 00:16:38,679 ¿vale? el parsein 352 00:16:38,679 --> 00:16:40,679 no es que coja la J, mire 353 00:16:40,679 --> 00:16:42,740 su entero en ASCII y coja 354 00:16:42,740 --> 00:16:44,720 la J, mire su entero en ASCII 355 00:16:44,720 --> 00:16:46,559 los concatene, no 356 00:16:46,559 --> 00:16:48,559 porque eso no tendría sentido, lo que hace es 357 00:16:48,559 --> 00:16:50,740 interpreta 358 00:16:50,740 --> 00:16:52,700 esto como un número entero 359 00:16:52,700 --> 00:16:54,620 y lo guarda en una variable 360 00:16:54,620 --> 00:16:56,659 entera con ese valor, 67 361 00:16:56,659 --> 00:16:58,440 el valor 6 362 00:16:58,440 --> 00:17:00,659 el valor 7, vale, entonces 363 00:17:00,659 --> 00:17:02,860 si lo ejecutamos 364 00:17:02,860 --> 00:17:04,400 ahora ya, pues 365 00:17:04,400 --> 00:17:06,480 12 de marzo 366 00:17:06,480 --> 00:17:08,619 de 2024 367 00:17:09,359 --> 00:17:12,299 el 12 de marzo de 2024 368 00:17:12,299 --> 00:17:14,299 no me dice nada porque 369 00:17:14,299 --> 00:17:16,880 se me habrá pasado el fecha válida, lógicamente 370 00:17:16,880 --> 00:17:18,140 entonces 371 00:17:18,140 --> 00:17:19,839 aquí 372 00:17:19,839 --> 00:17:24,039 el se, es que me he quedado con el el se 373 00:17:24,039 --> 00:17:25,819 O sea, el ELSE no lo habíamos completado 374 00:17:25,819 --> 00:17:31,880 Fecha válida 375 00:17:31,880 --> 00:17:36,799 Si la fecha es válida, no habíamos completado con el ELSE 376 00:17:36,799 --> 00:17:37,680 Vale 377 00:17:37,680 --> 00:17:41,910 Ahora ya sí, venga 378 00:17:41,910 --> 00:17:46,410 3 de marzo del 2020 379 00:17:46,410 --> 00:17:48,990 El 3 de marzo del 2020, fecha válida 380 00:17:48,990 --> 00:17:58,180 El 30 de febrero de 2000, fecha no válida 381 00:17:58,180 --> 00:18:06,349 El 12 del 45 del 1000 382 00:18:06,349 --> 00:18:07,289 Pues fecha no válida 383 00:18:07,289 --> 00:18:09,230 Bueno, se podrían contemplar todos los casos de prueba 384 00:18:09,230 --> 00:18:10,710 Pero yo creo que están contemplados 385 00:18:10,710 --> 00:18:12,910 Y que saldría bien 386 00:18:12,910 --> 00:18:14,349 ¿Vale? 387 00:18:16,400 --> 00:18:19,500 Entonces, si contempláramos que sea una fecha válida 388 00:18:19,500 --> 00:18:21,819 Teniendo en cuenta los años bisiestos 389 00:18:21,819 --> 00:18:23,700 Pues aquí 390 00:18:23,700 --> 00:18:27,180 La validación del año 391 00:18:27,180 --> 00:18:29,240 Sería más compleja 392 00:18:29,240 --> 00:18:30,319 ¿Vale? 393 00:18:30,319 --> 00:18:57,200 Entonces, aquí cambiaría, el código cambiaría en día máximo en esta asignación de aquí, perdón, aquí, si contemplamos que tenga en cuenta si el año es bisiesto o no, esta asignación de que en el caso del que el mes sea febrero sea 28 no se quedaría tan sencilla, 394 00:18:57,200 --> 00:19:13,299 Si en el caso de que el mes sea febrero, habría que abrir una rama, que es, ¿el mes es bisiesto? 29. ¿No es bisiesto? 28. Habría que cambiar el programa abriendo una rama más aquí. ¿Vale? 395 00:19:13,299 --> 00:19:17,240 Claro 396 00:19:17,240 --> 00:19:21,599 O aquí se podría ver más claro 397 00:19:21,599 --> 00:19:23,200 Meses igual a 2 398 00:19:23,200 --> 00:19:25,839 Año bisiesto, día más 29 399 00:19:25,839 --> 00:19:28,099 Else, día más 28 400 00:19:28,099 --> 00:19:30,079 Para lo cual 401 00:19:30,079 --> 00:19:31,900 Habría que hacer el bulle al año bisiesto 402 00:19:31,900 --> 00:19:33,799 Y el bulle al año bisiesto lo habéis hecho 403 00:19:33,799 --> 00:19:34,660 En otro ejercicio 404 00:19:34,660 --> 00:19:38,099 ¿Vale? Como año múltiplo de 4 405 00:19:38,099 --> 00:19:39,299 Salvo que lo sea de 100 406 00:19:39,299 --> 00:19:40,859 Que entonces no puede ser lo de 4 407 00:19:40,859 --> 00:19:43,640 Esa es la condición que habréis encontrado 408 00:19:43,640 --> 00:19:49,839 vale pues venga 409 00:19:49,839 --> 00:19:50,700 alguna otra cosa 410 00:19:50,700 --> 00:20:17,630 venga pues algún otro ejercicio 411 00:20:33,119 --> 00:20:45,299 Venga, 21. 412 00:20:52,619 --> 00:20:54,420 Un momento, antes de hacer el 21 413 00:20:54,420 --> 00:20:55,700 me he quedado yo con ganas 414 00:20:55,700 --> 00:20:57,019 y así de paso 415 00:20:57,019 --> 00:21:00,059 hacemos el del bisiesto, por si alguno 416 00:21:00,059 --> 00:21:01,839 de ampliar este programa 417 00:21:01,839 --> 00:21:03,500 para que contemple los bisiestos 418 00:21:03,500 --> 00:21:05,700 y así estamos haciendo el del booleano de bisiesto 419 00:21:05,700 --> 00:21:07,140 en el mismo, por si alguien no lo ha hecho 420 00:21:07,140 --> 00:21:09,299 vale, vamos a hacer 421 00:21:09,299 --> 00:21:11,539 este programa lo dejamos así tal cual 422 00:21:11,539 --> 00:21:13,880 vale, y vamos a 423 00:21:13,880 --> 00:21:16,019 ampliar a una versión 2 en el cual 424 00:21:16,019 --> 00:21:17,259 la fecha 425 00:21:17,259 --> 00:21:19,539 contemple también los años bisiestos 426 00:21:19,539 --> 00:21:21,900 para decirnos si es válida 427 00:21:21,900 --> 00:21:23,740 o no, es decir, si es 428 00:21:23,740 --> 00:21:25,819 el 29 de un bisiesto debería decirme 429 00:21:25,819 --> 00:21:27,859 válida, aquí si es el 29 430 00:21:27,859 --> 00:21:29,980 de cualquier año me diría que no es válida 431 00:21:29,980 --> 00:21:30,759 entonces bueno 432 00:21:30,759 --> 00:21:33,660 entonces vamos, este era el 433 00:21:33,660 --> 00:21:36,259 el 26 434 00:21:36,259 --> 00:21:40,200 pues el 26 voy a copiar 435 00:21:40,200 --> 00:21:41,420 y pegar para hacer 436 00:21:41,420 --> 00:21:44,099 copio y pego 437 00:21:44,099 --> 00:21:48,319 ejer 26 438 00:21:48,319 --> 00:21:50,839 versión 2 439 00:21:50,839 --> 00:21:57,250 vale, pues este ejercicio es versión 2 440 00:21:57,250 --> 00:22:04,430 en esta variante 441 00:22:04,430 --> 00:22:08,509 vamos a comprobar 442 00:22:08,509 --> 00:22:11,690 También 443 00:22:11,690 --> 00:22:14,809 Si el año es 444 00:22:14,809 --> 00:22:16,630 B si esto 445 00:22:16,630 --> 00:22:20,170 Vale, pues en qué se traduce 446 00:22:20,170 --> 00:22:21,829 Voy a quitar ya todo lo comentado 447 00:22:21,829 --> 00:22:23,049 En esta versión 448 00:22:23,049 --> 00:22:24,809 Para que quede más 449 00:22:24,809 --> 00:22:27,269 Vale 450 00:22:27,269 --> 00:22:30,849 Esto que teníamos aquí 451 00:22:30,849 --> 00:22:39,640 Vale, pues entonces 452 00:22:39,640 --> 00:22:41,400 Nuestro código se había traducido en este 453 00:22:41,400 --> 00:22:43,279 Voy a quitar este 454 00:22:43,279 --> 00:22:45,119 Boolean que es más largo 455 00:22:45,119 --> 00:22:48,759 lo voy a quitar y se me queda 456 00:22:48,759 --> 00:22:49,720 así 457 00:22:49,720 --> 00:22:52,940 entonces mi versión del programa era 458 00:22:52,940 --> 00:22:54,000 primero 459 00:22:54,000 --> 00:22:56,680 leemos los datos, para lo cual hay que hacer 460 00:22:56,680 --> 00:22:57,920 todo ese parseo 461 00:22:57,920 --> 00:22:59,859 de string con guiones 462 00:22:59,859 --> 00:23:01,640 a numeritos 463 00:23:01,640 --> 00:23:03,359 vale, ya está hecho 464 00:23:03,359 --> 00:23:05,980 ahora, ya que hemos hecho la lectura de los datos 465 00:23:05,980 --> 00:23:07,960 empezamos a validar 466 00:23:07,960 --> 00:23:10,359 primero el mes 467 00:23:10,359 --> 00:23:12,599 luego el año y ahora asumiendo que el mes 468 00:23:12,599 --> 00:23:14,960 y el año son válidos, asumiendo que son válidos 469 00:23:14,960 --> 00:23:19,559 Ahora ya hay que ver la combinación de días con mes 470 00:23:19,559 --> 00:23:20,700 ¿Vale? 471 00:23:22,240 --> 00:23:26,920 Entonces, el día máximo sabemos que será 31 472 00:23:26,920 --> 00:23:28,940 Si el mes es de 31 días 473 00:23:28,940 --> 00:23:34,359 Si el mes es de 30, será 30 días 474 00:23:34,359 --> 00:23:37,700 Y si el mes es 2, y solo en ese caso 475 00:23:37,700 --> 00:23:40,680 Vamos a necesitar la condición de service y esto 476 00:23:40,680 --> 00:23:42,220 Para abrir ahí dos posibilidades 477 00:23:42,220 --> 00:23:45,200 entonces, vamos a poner aparte 478 00:23:45,200 --> 00:23:47,599 como lo vamos a usar, la condición de ser bisiesto 479 00:23:47,599 --> 00:23:51,220 y esta condición 480 00:23:51,220 --> 00:23:52,700 trabaja con el año 481 00:23:52,700 --> 00:23:56,500 esta condición trabaja exclusivamente 482 00:23:56,500 --> 00:23:57,940 con el año, con el dato del año 483 00:23:57,940 --> 00:24:00,700 vale, entonces aquí uno le puede sonar 484 00:24:00,700 --> 00:24:02,220 más o menos lo que es un año bisiesto 485 00:24:02,220 --> 00:24:03,559 que sea múltiplo de 4, no sé qué 486 00:24:03,559 --> 00:24:06,279 pero se le pueden escapar cosas, entonces uno 487 00:24:06,279 --> 00:24:07,720 pues busca 488 00:24:07,720 --> 00:24:10,240 a ver, lo normal es que 489 00:24:10,240 --> 00:24:12,140 se lo preguntaría HGPT 490 00:24:12,140 --> 00:24:13,119 con lo cual haría 491 00:24:13,119 --> 00:24:15,700 pero aquí estamos intentando pensarlo 492 00:24:15,700 --> 00:24:17,299 entonces vamos a buscar la definición 493 00:24:17,299 --> 00:24:18,980 en lenguaje natural 494 00:24:18,980 --> 00:24:20,640 para traducirla a código 495 00:24:20,640 --> 00:24:28,640 vale 496 00:24:28,640 --> 00:24:36,220 cada cual 497 00:24:36,220 --> 00:24:38,259 pero si yo quiero 498 00:24:38,259 --> 00:24:43,390 venga 499 00:24:43,390 --> 00:24:45,509 condición 500 00:24:45,509 --> 00:24:48,029 de un año 501 00:24:48,029 --> 00:24:50,029 ¿cuál es la condición para que un año 502 00:24:50,029 --> 00:24:51,710 sea bisisto? esta pregunta me gusta más 503 00:24:51,710 --> 00:24:54,309 vale, esto ya lo podemos traducir a código 504 00:24:54,309 --> 00:24:55,109 vale 505 00:24:55,109 --> 00:24:57,990 tiene que ser múltiplo de 4 506 00:24:57,990 --> 00:25:01,970 pero no múltiplo de 100 507 00:25:01,970 --> 00:25:06,529 porque si es múltiplo de 4 y de 100 simultáneamente 508 00:25:06,529 --> 00:25:10,170 también debería ser múltiplo de 400 509 00:25:10,170 --> 00:25:12,529 esto es lo que dice 510 00:25:12,529 --> 00:25:14,109 esta es la definición matemática 511 00:25:14,109 --> 00:25:15,589 ahora hay que traducirla a Java 512 00:25:15,589 --> 00:25:16,990 en resumen 513 00:25:16,990 --> 00:25:20,289 tiene que ser múltiplo de 4 514 00:25:20,289 --> 00:25:24,309 pero no de 100 515 00:25:24,309 --> 00:25:26,069 porque si es de 516 00:25:26,069 --> 00:25:28,230 no simultáneamente de 4 y de 100 517 00:25:28,230 --> 00:25:30,549 porque si es simultáneamente de 4 518 00:25:30,549 --> 00:25:31,210 y de 100 519 00:25:31,210 --> 00:25:33,390 no va a ser bisiesto 520 00:25:33,390 --> 00:25:34,569 a menos 521 00:25:34,569 --> 00:25:37,869 que sea múltiplo de 400 522 00:25:37,869 --> 00:25:40,869 eso es, en palabras es eso 523 00:25:40,869 --> 00:25:42,730 es decir, yo cojo mi año 524 00:25:54,309 --> 00:25:55,549 Sí, ya. 525 00:25:59,470 --> 00:26:01,589 Pero yo te voy a poner esto en el examen. 526 00:26:06,430 --> 00:26:08,930 He dicho que todo lo que haya que hacer en el examen 527 00:26:08,930 --> 00:26:10,630 va a quedar muy claro en el enunciado. 528 00:26:11,269 --> 00:26:13,130 De verdad, dejad de sufrir tanto. 529 00:26:14,230 --> 00:26:15,430 Dejad de sufrir tanto. 530 00:26:16,529 --> 00:26:19,029 Vosotros, lo único que tenéis que preocuparos ahora mismo 531 00:26:19,029 --> 00:26:22,329 es de notar si vais de alguna manera 532 00:26:22,329 --> 00:26:24,470 aprendiendo cosas, progresando. 533 00:26:24,470 --> 00:26:26,250 es de los que os tenéis que preocupar 534 00:26:26,250 --> 00:26:28,410 no de los exámenes 535 00:26:28,410 --> 00:26:31,170 pues muy mal 536 00:26:31,170 --> 00:26:32,269 entiendo que 537 00:26:32,269 --> 00:26:35,410 tiene sentido que preocupe si estamos en junio 538 00:26:35,410 --> 00:26:37,109 y están los exámenes 539 00:26:37,109 --> 00:26:39,069 suspensos, pues hombre igual preocupa 540 00:26:39,069 --> 00:26:41,170 pero es que ahora no es nuestra preocupación 541 00:26:41,170 --> 00:26:42,829 de verdad, ahora vuestra preocupación es 542 00:26:42,829 --> 00:26:45,069 voy aprendiendo, voy avanzando, me entero 543 00:26:45,069 --> 00:26:46,789 me entero, soy capaz de hacer ejercicios 544 00:26:46,789 --> 00:26:47,869 ya está 545 00:26:47,869 --> 00:26:48,789 ¿qué? 546 00:26:51,210 --> 00:26:51,769 ¿cómo? 547 00:26:52,250 --> 00:26:53,049 estábamos aquí 548 00:26:53,049 --> 00:26:56,309 La condición de bisiesto 549 00:26:56,309 --> 00:26:57,609 Tiene que ser 550 00:26:57,609 --> 00:27:01,250 No puede ser múltiplo de 4 y de 100 551 00:27:01,250 --> 00:27:02,490 Simultáneamente 552 00:27:02,490 --> 00:27:03,950 ¿Vale? 553 00:27:03,990 --> 00:27:06,069 Porque si es múltiplo de 4 y de 100 simultáneamente 554 00:27:06,069 --> 00:27:06,849 No es bisiesto 555 00:27:06,849 --> 00:27:09,990 Pero entonces puede ser bisiesto 556 00:27:09,990 --> 00:27:11,950 Si es divisible entre 400 557 00:27:11,950 --> 00:27:14,089 Luego, entonces 558 00:27:14,089 --> 00:27:14,950 Esto 559 00:27:14,950 --> 00:27:17,869 Uno lo podría traducir 560 00:27:17,869 --> 00:27:19,809 Vale, a ver 561 00:27:19,809 --> 00:27:22,069 Es bisiesto 562 00:27:22,069 --> 00:28:07,119 A ver, es múltiplo de 4, vale, y, vale, esta sería la condición de ser simultáneamente múltiplo de 4 y de 100, ¿no? 563 00:28:07,119 --> 00:28:09,500 Pues esto no puede ocurrir 564 00:28:09,500 --> 00:28:09,980 Dime 565 00:28:09,980 --> 00:28:19,460 Claro, o sea, no puede ser múltiplo de 4 y de 100 a la vez 566 00:28:19,460 --> 00:28:20,220 No puede ser 567 00:28:20,220 --> 00:28:23,160 Pero podría ser 568 00:28:23,160 --> 00:28:23,980 Si 569 00:28:23,980 --> 00:28:26,880 Es múltiplo de 400 570 00:28:26,880 --> 00:28:29,240 Entonces sí, si es múltiplo de 400, sí 571 00:28:29,240 --> 00:28:30,599 Entonces 572 00:28:30,599 --> 00:28:32,680 Año es 573 00:28:32,680 --> 00:28:33,880 Múltiplo 574 00:28:33,880 --> 00:28:36,160 De 400 575 00:28:36,160 --> 00:28:54,440 es que cualquier año 576 00:28:54,440 --> 00:28:56,279 porque yo he interpretado la definición 577 00:28:56,279 --> 00:28:57,920 los múltiplos de 400 578 00:28:57,920 --> 00:28:59,720 son bisiestos todos 579 00:28:59,720 --> 00:29:02,200 los múltiplos de 400 son bisiestos 580 00:29:02,200 --> 00:29:04,460 ¿vale? que son las únicas 581 00:29:04,460 --> 00:29:06,359 excepciones de años múltiplos 582 00:29:06,359 --> 00:29:08,220 de 4 y 100 que son bisiestos 583 00:29:08,220 --> 00:29:22,119 ¿Vale? Porque el resto de múltiplos de 4 y 100 simultáneamente no lo serían, solo serían los que sean múltiplos de 400, luego todos los múltiplos de 400 son bisiestos, ¿vale? ¿Sí o sí? 584 00:29:22,119 --> 00:29:30,079 Este es 585 00:29:30,079 --> 00:29:31,980 Esto 586 00:29:31,980 --> 00:29:33,799 Si es múltiplo de 4 587 00:29:33,799 --> 00:29:36,380 Esto es true 588 00:29:36,380 --> 00:29:37,140 ¿Vale? 589 00:29:39,259 --> 00:29:39,920 Esto es true 590 00:29:39,920 --> 00:29:43,220 Y esto es false 591 00:29:43,220 --> 00:29:45,299 Con lo cual sería un true 592 00:29:45,299 --> 00:29:46,559 True o false, true 593 00:29:46,559 --> 00:29:47,599 Te daría true 594 00:29:47,599 --> 00:29:48,519 ¿Vale? 595 00:30:00,779 --> 00:30:02,279 O esto se podría explicar 596 00:30:02,279 --> 00:30:07,250 Múltiplo de 4 597 00:30:07,250 --> 00:30:08,289 Igual así se ve más claro 598 00:30:08,289 --> 00:30:09,490 Múltiplo de 4 599 00:30:09,490 --> 00:30:13,869 Y no múltiplo de 100 600 00:30:13,869 --> 00:30:17,109 O múltiplo de 400 601 00:30:17,109 --> 00:30:18,529 Es decir, múltiplo de 4 602 00:30:18,529 --> 00:30:20,650 Y, perdón 603 00:30:20,650 --> 00:30:23,049 Así está mejor expresado 604 00:30:23,049 --> 00:30:25,569 Múltiplo de 4 y no de 100 605 00:30:25,569 --> 00:30:27,230 O de 400 606 00:30:27,230 --> 00:30:30,349 Yo creo que esta ya sí que contempla todas las posibilidades 607 00:30:30,349 --> 00:30:31,589 ¿Vale? 608 00:30:32,650 --> 00:30:34,309 Múltiplo de 4 o no de 100 609 00:30:34,309 --> 00:30:35,710 O de 400 610 00:30:35,710 --> 00:30:36,630 Vale 611 00:30:36,630 --> 00:30:38,029 Hasta luego 612 00:30:38,029 --> 00:30:39,569 entonces bájalo aquí abajo 613 00:30:39,569 --> 00:30:42,819 vale 614 00:30:42,819 --> 00:30:45,420 asumiendo que esta condición está bien 615 00:30:45,420 --> 00:30:47,779 que creo que sí, ahora podemos comprobarlo y validarlo 616 00:30:47,779 --> 00:30:50,000 ahora ya 617 00:30:50,000 --> 00:30:50,799 podemos hacer 618 00:30:50,799 --> 00:30:53,839 vamos a ver, ¿qué día máximo asignamos? 619 00:30:55,819 --> 00:30:57,160 ¿mes es de 31 días? 620 00:30:57,259 --> 00:30:57,740 31 621 00:30:57,740 --> 00:31:01,440 ¿mes es de 2 días? 622 00:31:02,460 --> 00:31:03,619 pues si el mes 623 00:31:03,619 --> 00:31:05,039 es de 2 días 624 00:31:05,039 --> 00:31:06,920 a ver 625 00:31:06,920 --> 00:31:09,660 aquí lo que pasa es que si lo hacemos con el operador 626 00:31:09,660 --> 00:31:18,539 tenemos que cambiar el orden de esto claro aquí que como abrían cuatro ramas un operador 627 00:31:18,539 --> 00:31:23,220 ternario con cuatro ramas ya es un poco rollo entonces va a quedar mucho más claro con un 628 00:31:23,220 --> 00:31:37,289 libro entonces meses de 31 días pues si el mes es de 31 días entonces día máximo el que borrado 629 00:31:37,289 --> 00:31:45,019 Ah, vale, vale 630 00:31:45,019 --> 00:31:47,339 Día máximo igual a 31 631 00:31:47,339 --> 00:31:52,359 El SEIF 632 00:31:52,359 --> 00:31:55,650 El SEIF 633 00:31:55,650 --> 00:32:01,569 Més es igual a 2 634 00:32:01,569 --> 00:32:07,170 Pues aquí podemos poner 635 00:32:07,170 --> 00:32:08,650 Si año bisiesto 636 00:32:08,650 --> 00:32:11,589 Si es bisiesto 637 00:32:11,589 --> 00:32:13,809 Día máximo 638 00:32:13,809 --> 00:32:15,910 Igual a 29 639 00:32:15,910 --> 00:32:19,210 Else 640 00:32:19,210 --> 00:32:21,549 Día max 641 00:32:21,549 --> 00:32:22,789 Igual a 28 642 00:32:22,789 --> 00:32:26,529 Y ninguno de los casos anteriores 643 00:32:26,529 --> 00:32:27,509 Día max 644 00:32:27,509 --> 00:32:29,089 Igual a 30 645 00:32:29,089 --> 00:32:31,750 ¿Vale? 646 00:32:32,650 --> 00:32:33,829 Y ya está 647 00:32:33,829 --> 00:32:38,109 Ahora contemplaría fecha válida 648 00:32:38,109 --> 00:32:40,089 Tanto si los años son bisiestos como si no 649 00:32:40,089 --> 00:32:42,950 Mes de 31 días 650 00:32:42,950 --> 00:32:45,029 Esto es lo máximo que puede tener el día 651 00:32:45,029 --> 00:32:46,710 Si el mes es febrero 652 00:32:46,710 --> 00:32:48,430 El día máximo dependerá 653 00:32:48,430 --> 00:32:50,089 De si es bisiesto o no 654 00:32:50,089 --> 00:32:52,730 y si no es ni de 31 días 655 00:32:52,730 --> 00:32:54,549 ni febrero, entonces es que tiene que ser 656 00:32:54,549 --> 00:32:55,650 de 30, no hay otra 657 00:32:55,650 --> 00:32:58,529 una vez que ya tenemos 658 00:32:58,529 --> 00:33:00,569 el día máximo, ya podemos hacer este último 659 00:33:00,569 --> 00:33:03,440 if, vale 660 00:33:03,440 --> 00:33:07,980 vale, todas formas todo esto lo subo a la 661 00:33:07,980 --> 00:33:11,920 virtual, vale 662 00:33:11,920 --> 00:33:13,720 eeeem 663 00:33:13,720 --> 00:33:16,539 y vamos a completar con el que había 664 00:33:16,539 --> 00:33:18,740 dicho alguien, que era este, el 21 665 00:33:18,740 --> 00:33:34,940 vale 666 00:33:34,940 --> 00:33:37,519 datos de entrada para el 667 00:33:37,519 --> 00:33:39,140 21, los coeficientes 668 00:33:39,140 --> 00:33:44,410 Vamos a copiar un system out que haya por ahí 669 00:33:44,410 --> 00:33:56,440 ¿Qué número era este? 670 00:33:58,079 --> 00:33:58,980 El 26 671 00:33:58,980 --> 00:34:03,710 Y ¿dónde lo tengo yo aquí? 672 00:34:03,910 --> 00:34:05,049 Ah, que está aquí ya, vale 673 00:34:05,049 --> 00:34:06,630 El 21 674 00:34:06,630 --> 00:34:10,800 Pues venga, un número 675 00:34:10,800 --> 00:34:14,460 Voy a copiar y 676 00:34:14,460 --> 00:34:17,340 Otro y otro 677 00:34:17,340 --> 00:34:19,579 Entonces, coeficiente A 678 00:34:19,579 --> 00:34:24,239 Coeficiente B de la ecuación de segundo grado 679 00:34:24,239 --> 00:34:26,539 coeficiente c 680 00:34:26,539 --> 00:34:28,380 de la ecuación 681 00:34:28,380 --> 00:34:30,679 el primero que meto es el coeficiente a 682 00:34:30,679 --> 00:34:31,599 el b y el c 683 00:34:31,599 --> 00:34:33,780 vale, entonces 684 00:34:33,780 --> 00:34:36,800 ahora se trata de contemplar las posibilidades 685 00:34:36,800 --> 00:34:37,960 de una ecuación de segundo grado 686 00:34:37,960 --> 00:34:40,300 ¿puedo plantar la fórmula sin más? no 687 00:34:40,300 --> 00:34:41,679 tengo varias posibilidades 688 00:34:41,679 --> 00:34:42,739 porque 689 00:34:42,739 --> 00:34:44,639 si 690 00:34:44,639 --> 00:34:51,030 lo que hay dentro de la raíz es negativo 691 00:34:51,030 --> 00:34:52,789 entonces 692 00:34:52,789 --> 00:34:54,929 no tiene solución 693 00:34:54,929 --> 00:34:57,449 asumimos que no tiene solución, nos olvidamos de las complejas 694 00:34:57,449 --> 00:34:58,789 no lo extendemos 695 00:34:58,789 --> 00:35:01,570 y si es 0 tiene una única solución 696 00:35:01,570 --> 00:35:03,489 entonces 697 00:35:03,489 --> 00:35:04,909 ahí ya veo las ramas que hay 698 00:35:04,909 --> 00:35:07,449 y esas ramas van a depender 699 00:35:07,449 --> 00:35:08,969 exclusivamente de esta operación 700 00:35:08,969 --> 00:35:10,929 b al cuadrado menos 4a por c 701 00:35:10,929 --> 00:35:11,889 va a depender de esto 702 00:35:11,889 --> 00:35:15,489 entonces vamos a llamar 703 00:35:15,489 --> 00:35:16,789 a esa operación el 704 00:35:16,789 --> 00:35:19,190 determinante, que lo dicen, lo llaman 705 00:35:19,190 --> 00:35:21,409 determinante, porque determina 706 00:35:21,409 --> 00:35:22,170 las soluciones 707 00:35:22,170 --> 00:35:26,230 Pues bueno, esto es un double porque ya 708 00:35:26,230 --> 00:35:30,190 Esa operación, cuando hagamos la raíz puede ser un double 709 00:35:30,190 --> 00:35:32,309 Pues venga, el determinante 710 00:35:32,309 --> 00:35:35,489 El determinante va a ser b al cuadrado 711 00:35:35,489 --> 00:35:37,210 Que es b por b 712 00:35:37,210 --> 00:35:42,030 Menos 4 por a por c 713 00:35:42,030 --> 00:35:44,289 Ese es el determinante 714 00:35:44,289 --> 00:35:46,210 b al cuadrado menos 4 por a por c 715 00:35:46,210 --> 00:36:06,940 Entonces, si determinante resulta que es menor que cero, pues ya está, ya hemos terminado, no existen soluciones reales, ya está. 716 00:36:09,840 --> 00:36:28,099 Si el determinante es cero, existe una única solución, la solución doble, que se llama, que la vamos a poner en un número aparte, 717 00:36:28,099 --> 00:36:33,920 La solución será 718 00:36:33,920 --> 00:36:35,940 Vamos a ponerla aquí 719 00:36:35,940 --> 00:36:37,340 Double solución 720 00:36:37,340 --> 00:36:39,340 Que será menos b 721 00:36:39,340 --> 00:36:40,780 Menos b 722 00:36:40,780 --> 00:36:45,719 Lo del determinante da igual 723 00:36:45,719 --> 00:36:51,420 Se me ha olvidado la fórmula 724 00:36:51,420 --> 00:36:52,480 A2a 725 00:36:52,480 --> 00:36:56,179 Menos b partido entre 2a 726 00:36:56,179 --> 00:36:57,360 2 727 00:36:57,360 --> 00:36:59,340 Por a 728 00:36:59,340 --> 00:37:00,380 ¿Vale? 729 00:37:00,380 --> 00:37:04,900 esta será la solución que es la que mostramos 730 00:37:04,900 --> 00:37:20,840 y ahora si el determinante es mayor que 0 731 00:37:20,840 --> 00:37:23,079 que será el resto de los casos 732 00:37:23,079 --> 00:37:26,800 tenemos dos soluciones y ya está 733 00:37:26,800 --> 00:37:36,039 la solución 1 será menos b más raíz cuadrada 734 00:37:36,039 --> 00:37:38,039 el operador raíz cuadrada no existe 735 00:37:38,039 --> 00:37:41,559 pero igual que ya estamos usando algunas funciones 736 00:37:41,559 --> 00:37:44,320 aunque no entendemos todavía por qué las usamos 737 00:37:44,320 --> 00:37:46,099 o por qué se escriben de esa manera y todo 738 00:37:46,099 --> 00:37:49,239 pues para hacer el charat, para hacer el next in 739 00:37:49,239 --> 00:37:52,340 pues podemos empezar a usar esto 740 00:37:52,340 --> 00:37:54,239 aunque no sabemos por qué se escribe así 741 00:37:54,239 --> 00:37:56,880 para hacer una raíz cuadrada 742 00:37:56,880 --> 00:38:01,820 b cuadrado menos 4ac 743 00:38:01,820 --> 00:38:06,639 b por b menos 4 por a por c 744 00:38:06,639 --> 00:38:10,260 esta sería la solución 1 745 00:38:10,260 --> 00:38:13,760 He partido todo por 2A, claro 746 00:38:13,760 --> 00:38:21,949 Partido todo 747 00:38:21,949 --> 00:38:24,170 Entre 2A 748 00:38:24,170 --> 00:38:27,369 Por A 749 00:38:27,369 --> 00:38:30,030 Y la solución 2 sería la misma 750 00:38:30,030 --> 00:38:35,019 Pero cambiando 751 00:38:35,019 --> 00:38:36,860 Este más por menos 752 00:38:36,860 --> 00:38:42,079 Y ahora las mostramos y se acabó 753 00:38:42,079 --> 00:38:58,550 ¡Hala! Ya estarían las dos mostradas 754 00:38:58,550 --> 00:39:01,989 ¿Vale? Luego distinguimos que hay 755 00:39:01,989 --> 00:39:03,710 Tres ramas, tres posibilidades 756 00:39:03,710 --> 00:39:05,869 Las tres en función de este valor 757 00:39:05,869 --> 00:39:07,329 Pues ya está, las tres ramas 758 00:39:07,329 --> 00:39:08,690 si, si, si, si, se acabó. 759 00:39:10,389 --> 00:39:11,710 No existen soluciones, 760 00:39:11,809 --> 00:39:13,389 o es una única o son las dos. 761 00:39:21,820 --> 00:39:23,260 Vale, aquí he puesto paréntesis 762 00:39:23,260 --> 00:39:25,119 lógicamente porque si no 763 00:39:25,119 --> 00:39:27,800 ganaría este operador 764 00:39:27,800 --> 00:39:28,579 por la prioridad. 765 00:39:49,280 --> 00:39:50,400 Lo que pasa es que, claro, 766 00:39:52,860 --> 00:39:55,099 para este no existen 767 00:39:55,099 --> 00:39:56,840 soluciones reales, como era de esperar, 768 00:39:56,960 --> 00:39:57,840 porque este polinomio 769 00:39:57,840 --> 00:39:59,280 No 770 00:39:59,280 --> 00:40:04,289 El B tiene que ser negativo 771 00:40:04,289 --> 00:40:08,860 Para que se pueda factorizar 772 00:40:08,860 --> 00:40:10,340 Entonces 773 00:40:10,340 --> 00:40:11,980 Si lo vamos a ejecutar 774 00:40:11,980 --> 00:40:15,280 1, menos 2 775 00:40:15,280 --> 00:40:16,619 Y 4 776 00:40:16,619 --> 00:40:19,019 Me he pasado con el C 777 00:40:19,019 --> 00:40:21,119 1 778 00:40:21,119 --> 00:40:24,380 Menos 4 779 00:40:24,380 --> 00:40:26,699 2 780 00:40:26,699 --> 00:40:29,360 Este si tiene ya soluciones 781 00:40:29,360 --> 00:40:31,860 Casi 782 00:40:31,860 --> 00:40:38,360 Venga, pues nada 783 00:40:38,360 --> 00:40:39,079 Vamos a