Mi reloj despertador
Soy estadounidense, y también lo es mi despertador (digital). Para configurar la alarma, comienza en el momento en que era anteriormente. Al presionar el botón de la hora se mueve hacia arriba una hora, y al presionar el botón de los minutos se sube un minuto. Al presionar ambos botones al mismo tiempo, se restablece a la medianoche (12:00 a.m.) y cuenta como dos pulsaciones de botón.
Cuando las horas exceden su límite (12), se restablece a 1 y alterna la luz AM / PM. Cuando los minutos exceden su límite (59), se restablecen a 0, sin afectar las horas.
La tarea
Su tarea es, dada una hora de inicio y una hora objetivo, generar el número óptimo de pulsaciones de botones necesarias para configurar mi alarma en la hora objetivo.
Puede tomar información en el formato que más le convenga. Los únicos datos que su programa debería necesitar son horas y minutos, para ambas entradas. Eso significa que usted, por ejemplo, puede tomar los datos en milisegundos desde la época, y extraer las horas y minutos, pero no puede codificar nada en el año, mes, segundo, etc. Tenga en cuenta que si bien puede, por ejemplo, ingresar "hora militar" (u hora regular para la mayor parte del mundo), pero eso no cambia la forma en que funciona mi reloj.
Ejemplos
1:15 pm -> 2:30 am
Puede presionar ambos botones para restablecer a las 12:00 a.m., luego aumentar a las 2:30 a.m., que serían 2+2+30 = 34
presionar botones. También puede aumentar a las 2:30 am, que serían 13+15 = 28
presionar botones. Por lo tanto, su salida es 28
.
3:58 am -> 4:02 am
Puede restablecer e incrementar, que serían 2+4+2 = 8
presionar botones. También podría aumentar, que serían 1+4 = 5
presionar botones. Por lo tanto, su salida es 5
.
10:55 pm -> 1:00 am
Puede restablecer e incrementar, que serían 2+1 = 3
presionar botones. También podría aumentar, que serían 3+5=8
presionar botones. Por lo tanto, su salida es 3
.
1:00 am -> 1:59 pm
Puede reiniciar e incrementar, pero eso sería tres prensas más que solo aumentar. Por lo tanto, su salida es 12+59 =
71
.
Casos de prueba
Current Target = Output
1:15pm 2:30am = 28
3:58am 4:02am = 5
10:55pm 1:00am = 3
1:00am 1:59pm = 71
12:00am 12:00am = 0
6:51pm 12:00am = 2
2:01pm 11:00pm = 25
2:01pm 11:01pm = 9
12:59am 12:01am = 2
11:50am 12:00pm = 11