المبرمج العربي نشر 11 مارس 2016 أرسل تقرير نشر 11 مارس 2016 لدي كائن datetime يحتوي على وقت معين وأريد تقريبه إلى أقرب 10 دقائق (مثل 00، 10، 20، 30...)، فما الطريقة الصحيحة لفعل ذلك لأنني جربت استخدام دالة round لكنني لم تعمل مع الأعداد المساوية أو أكبر من 56 فهي ترجع 60 بدلا من 00 وإضافة ساعة. اقتباس
0 هشام رزق الله نشر 11 مارس 2016 أرسل تقرير نشر 11 مارس 2016 توجد عدة طرق في بايثون لفعل ذلك، فإذا أردت العودة إلى أقرب 10 دقائق فيمكنك استخدام دالة timedelta كالتالي: thetime = thetime - datetime.timedelta(minutes=thetime.minute % 10, seconds=thetime.second, microseconds=thetime.microsecond) أما لو أردت التقريب لأقرب 10 دقائق فيمكنك استخدام هذه الطريقة التي تعمل مع جملة الشرطية if لتحديد ما إذا كان يجب إضافة 10 دقائق أو لا حسب الدقائق: discard = datetime.timedelta(minutes=thetime.minute % 10, seconds=thetime.second, microseconds=thetime.microsecond) thetime -= discard if discard >= datetime.timedelta(minutes=5): thetime += datetime.timedelta(minutes=10) أو يمكنك ببساطة استخدام هذه الطريقة الأقصر من السابقة: thetime += datetime.timedelta(minutes=5) thetime -= datetime.timedelta(minutes=thetime.minute % 10, seconds=thetime.second, microseconds=thetime.microsecond) توجد طرق أخرى لفعل ذلك لكن هذه الطرق هي الأبسط. اقتباس
السؤال
المبرمج العربي
لدي كائن datetime يحتوي على وقت معين وأريد تقريبه إلى أقرب 10 دقائق (مثل 00، 10، 20، 30...)، فما الطريقة الصحيحة لفعل ذلك لأنني جربت استخدام دالة round لكنني لم تعمل مع الأعداد المساوية أو أكبر من 56 فهي ترجع 60 بدلا من 00 وإضافة ساعة.
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.