على سبيل المثال ، أدى استخدام nice_duration للتحقق من المدة التي مرت منذ بداية شهر تموز (يوليو) 2016 إلى إنتاج "أحد عشر ستة وستين يومًا وخمس ساعة وثانية واحدة".
إذا قمت فقط بطرح هذا السؤال على Mycroft ، فسوف ينتقل إلى Wolfram ، الذي ينتج الناتج المطلوب. أدرك أنها مهمة مرعبة تحاول معالجة أيام إلى سنوات ، في ظل سنوات كبيسة وكل شيء ، لكنني أعتقد أنها يجب أن تنتقل على الأقل إلى المئات: "أحد عشر مائة وستة وستين يومًا ..." (أو "ألف ومائة وستة وستون أيام")
شكرا على الإبلاغ عن هذا :)
إذا كان أي شخص حريصًا على معالجتها ويريد التعامل مع السنوات الكبيسة ، فقد استخدمت ما يلي في مهارة التاريخ والوقت مؤخرًا:
def is_leap_year(self, year):
return (year % 400 == 0) or ((year % 4 == 0) and (year % 100 != 0))
هناك أيضًا وظيفة calendar.isleap
في المكتبة القياسية ...
قد تكون الوحدة النمطية الإنسانية شيئًا يجب النظر إليه أيضًا ...
>>> humanize.naturaldelta(timedelta(minutes=40, hours=360000))
'41 years'
إذا كان شخص ما _ هو _ سيعيد تشكيل هذه الوظيفة ، فقد يكون من المفيد إعطاء دقة الشيء أثناء وجوده هناك. إنه أمر ممتع و 100٪ في شخصية Mycroft أن يخبرك بعدد الثواني التي مرت منذ ذلك اليوم منذ فترة طويلة ، ولكن قد يفضل المبرمجون التحديد ، nice_duration_years()
أو nice_duration(dt1, dt2, <str>resolution)
نعم ، لقد كنت أفكر في "الحل" لعدد من هذه الوظائف ولكن لا أريد إجراء تغييرات عاجلة. يبدو أن هذا قد يكون مشكلة أقل هنا إذا أضفنا معلمة اختيارية فقط وما زالت تُرجع سلسلة ، على سبيل المثال:
nice_duration(<int>seconds, <str>resolution)
لأنني لا أقوم بتشفير هذا بنفسي ، سأقدم ألف اقتراح!
إذا حصلت هذه الوظائف على حل ، فربما تعمل السنوات على مدار الثلث ، أو ضع في اعتبارك عدد الأشهر أو ما إلى ذلك ، مما يحدث فرقًا بين "حوالي عامين" ، أو "ما يقرب من عامين" ، أو "ما يزيد قليلاً عن عامين" ، أو "2 فقط" سنوات"
لقد بدأت للتو في التشويش على هذا في المترجم الفوري ، ولا أعتقد أنه سيكون صعبًا كما اعتقدت. إذا لم يبدأ أي شخص آخر بعد ، فسأفعل ذلك بعد العشاء.
دمج الإصلاح.