summaryrefslogtreecommitdiff
path: root/ext/pybind11/include/pybind11/chrono.h
diff options
context:
space:
mode:
Diffstat (limited to 'ext/pybind11/include/pybind11/chrono.h')
-rw-r--r--ext/pybind11/include/pybind11/chrono.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/ext/pybind11/include/pybind11/chrono.h b/ext/pybind11/include/pybind11/chrono.h
index 2b37f56f1..8a41d08b0 100644
--- a/ext/pybind11/include/pybind11/chrono.h
+++ b/ext/pybind11/include/pybind11/chrono.h
@@ -85,9 +85,11 @@ public:
using ss_t = duration<int, std::ratio<1>>;
using us_t = duration<int, std::micro>;
- return PyDelta_FromDSU(duration_cast<dd_t>(d).count(),
- duration_cast<ss_t>(d % days(1)).count(),
- duration_cast<us_t>(d % seconds(1)).count());
+ auto dd = duration_cast<dd_t>(d);
+ auto subd = d - dd;
+ auto ss = duration_cast<ss_t>(subd);
+ auto us = duration_cast<us_t>(subd - ss);
+ return PyDelta_FromDSU(dd.count(), ss.count(), us.count());
}
PYBIND11_TYPE_CASTER(type, _("datetime.timedelta"));