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 YYYYMMDD
s, 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-20100101
rendimientos de entrada 365
y 33320229 17000101
rendimientos 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 bonus
es 1.
- Si su código funciona independientemente del orden de las entradas (por ejemplo,
20100101,20110101
devoluciones365
o-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
20109901
o34720132
, 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|20100202
o2010010120100202
, 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) +1
votos).
20040229
. : P
365*4 + 2 + 2
= 1464. ¡Gracias por la información!