Mycroft-core: La salida de mycroft.format.nice_duration () es incómoda durante largos períodos

Creado en 10 sept. 2019  ·  8Comentarios  ·  Fuente: MycroftAI/mycroft-core

Por ejemplo, el uso de nice_duration para comprobar cuánto tiempo ha pasado desde que se produjo una fecha y hora a principios de julio de 2016, "once sesenta y seis días cinco horas un segundo".

Si solo le hace esa pregunta a Mycroft, pasa a Wolfram, que produce el resultado deseado. Me doy cuenta de que es una tarea de pesadilla tratar de abordar de días a años, dados los años bisiestos y todo, pero calculo que al menos debería pasar a cientos: "mil ciento sesenta y seis días ..." (o "mil ciento sesenta y seis dias")

help wanted

Todos 8 comentarios

Gracias por informar de esto :)

Si alguien está interesado en abordarlo y quiere manejar años bisiestos, recientemente utilicé lo siguiente en la Habilidad de fecha y hora:

def is_leap_year(self, year):
    return (year % 400 == 0) or ((year % 4 == 0) and (year % 100 != 0))

También está la función calendar.isleap en la biblioteca estándar ...

El módulo humanizar también podría ser algo a tener en cuenta ...

>>> humanize.naturaldelta(timedelta(minutes=40, hours=360000))
'41 years'

Si alguien _ va_ a refactorizar esta función, podría valer la pena darle resolución a la cosa mientras está ahí. Es divertido y de carácter 100% para Mycroft decirle cuántos segundos han pasado desde ese día hace mucho tiempo, pero los programadores pueden preferir especificar, nice_duration_years() o nice_duration(dt1, dt2, <str>resolution)

Sí, he estado pensando en la "resolución" de varias de estas funciones, pero no quiero hacer cambios importantes. Parece que eso podría ser un problema menor aquí si solo agregamos un parámetro opcional y aún devuelve una cadena, por ejemplo:
nice_duration(<int>seconds, <str>resolution)

Como no estoy codificando esto yo mismo, ¡haré mil sugerencias!

Si estas funciones obtienen una resolución, tal vez los años podrían operar durante trimestres, o considerar cuántos meses, etc., marcan la diferencia entre "aproximadamente 2 años", "casi 2 años", "un poco más de 2 años" o simplemente "2 años"

Empecé a preocuparme por esto en el intérprete, y no creo que sea tan difícil como pensaba. Si nadie más ha empezado todavía, lo haré después de la cena.

Arreglo fusionado.

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

el-tocino picture el-tocino  ·  4Comentarios

krisgesling picture krisgesling  ·  5Comentarios

Zacki84 picture Zacki84  ·  10Comentarios

akhiljns picture akhiljns  ·  5Comentarios

ryanleesipes picture ryanleesipes  ·  4Comentarios