Otro problema de manipulación de fecha: P
Tarea
Escriba un programa o una función que calcule la diferencia entre dos fechas dadas por un usuario.
De entrada y salida
Similar a la anterior , las entradas son dos YYYYMMDDs, separadas por un espacio , una coma ,o un signo menos -.
Ejemplo de valores de entrada:
20100101-20010911
20110620-20121223
19000101 20101010
33330101,19960229
00010101 99991231
La salida es un número entero, que es la diferencia entre dos fechas, en días.
Por ejemplo, 20110101-20100101rendimientos de entrada 365y 33320229 17000101rendimientos 596124.
Puedes probar los resultados aquí en aquí . (Véanse los comentarios de Rintaun a continuación.) Si dos fechas son iguales, el programa debería regresar 0, si la fecha es válida (ver Puntuación ).
Restricción
Por supuesto, no debe usar ningún tipo de función / clase / ... que esté relacionado con la marca de tiempo o la fecha, y debe usar el calendario gregoriano .
Puntuación
Si su código no mantiene la restricción, entonces score = -∞.
El valor predeterminado bonuses 1.
- Si su código funciona independientemente del orden de las entradas (por ejemplo,
20100101,20110101devoluciones365o-365)bonus+=1,. - Si su código puede manejar el año 0 ,
bonus+=0.5. - Si su código reconoce un mes no válido (entre 1 ~ 12) / fecha (entre 1 ~ 31), me gusta
20109901o34720132, e imprimeE(y finaliza el programa o devuelve algo como0)bonus+=1,. - Independientemente de la regla anterior, si su código reconoce fechas no válidas, como
20100230,20100229, o20111131, e impresionesE(y termina el programa o vuelve algo así0),bonus+=1. - Independientemente de las dos reglas anteriores, si su código reconoce una cadena de entrada no válida, como
20100101|20100202o2010010120100202, e imprimeE(y finaliza el programa o devuelve algo como0)bonus+=1,.
score = floor(-4.2*code.length/bonus). El código con la puntuación más alta gana. Si dos códigos principales tienen el mismo puntaje, entonces los códigos con la mayor bonificación ganan. Si dos códigos principales tienen la misma puntuación y bonificación, entonces ganan los códigos con los votos más altos.
(Debido: cuando hay más de 5 códigos que tienen más de (o igual) +1votos).
20040229. : P
365*4 + 2 + 2= 1464. ¡Gracias por la información!