| Index: base/time/time.cc
|
| diff --git a/base/time/time.cc b/base/time/time.cc
|
| index 9f3c53d6695b1e8b4960dc4911c761dff3b7aa56..c277bbf41e0e8a0d93fe01fef43ab75e5214590a 100644
|
| --- a/base/time/time.cc
|
| +++ b/base/time/time.cc
|
| @@ -17,40 +17,81 @@ namespace base {
|
|
|
| // TimeDelta ------------------------------------------------------------------
|
|
|
| +// static
|
| +TimeDelta TimeDelta::Max() {
|
| + return TimeDelta(std::numeric_limits<int64>::max());
|
| +}
|
| +
|
| int TimeDelta::InDays() const {
|
| + if (is_max()) {
|
| + // Preserve max to prevent overflow.
|
| + return std::numeric_limits<int>::max();
|
| + }
|
| return static_cast<int>(delta_ / Time::kMicrosecondsPerDay);
|
| }
|
|
|
| int TimeDelta::InHours() const {
|
| + if (is_max()) {
|
| + // Preserve max to prevent overflow.
|
| + return std::numeric_limits<int>::max();
|
| + }
|
| return static_cast<int>(delta_ / Time::kMicrosecondsPerHour);
|
| }
|
|
|
| int TimeDelta::InMinutes() const {
|
| + if (is_max()) {
|
| + // Preserve max to prevent overflow.
|
| + return std::numeric_limits<int>::max();
|
| + }
|
| return static_cast<int>(delta_ / Time::kMicrosecondsPerMinute);
|
| }
|
|
|
| double TimeDelta::InSecondsF() const {
|
| + if (is_max()) {
|
| + // Preserve max to prevent overflow.
|
| + return std::numeric_limits<double>::infinity();
|
| + }
|
| return static_cast<double>(delta_) / Time::kMicrosecondsPerSecond;
|
| }
|
|
|
| int64 TimeDelta::InSeconds() const {
|
| + if (is_max()) {
|
| + // Preserve max to prevent overflow.
|
| + return std::numeric_limits<int64>::max();
|
| + }
|
| return delta_ / Time::kMicrosecondsPerSecond;
|
| }
|
|
|
| double TimeDelta::InMillisecondsF() const {
|
| + if (is_max()) {
|
| + // Preserve max to prevent overflow.
|
| + return std::numeric_limits<double>::infinity();
|
| + }
|
| return static_cast<double>(delta_) / Time::kMicrosecondsPerMillisecond;
|
| }
|
|
|
| int64 TimeDelta::InMilliseconds() const {
|
| + if (is_max()) {
|
| + // Preserve max to prevent overflow.
|
| + return std::numeric_limits<int64>::max();
|
| + }
|
| return delta_ / Time::kMicrosecondsPerMillisecond;
|
| }
|
|
|
| int64 TimeDelta::InMillisecondsRoundedUp() const {
|
| + if (is_max()) {
|
| + // Preserve max to prevent overflow.
|
| + return std::numeric_limits<int64>::max();
|
| + }
|
| return (delta_ + Time::kMicrosecondsPerMillisecond - 1) /
|
| Time::kMicrosecondsPerMillisecond;
|
| }
|
|
|
| int64 TimeDelta::InMicroseconds() const {
|
| + if (is_max()) {
|
| + // Preserve max to prevent overflow.
|
| + return std::numeric_limits<int64>::max();
|
| + }
|
| return delta_;
|
| }
|
|
|
|
|