| // Copyright 2022 The ChromiumOS Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "croslog/relative_time_util.h" |
| |
| #include <string> |
| |
| namespace croslog { |
| |
| bool isNumber(const std::string& s) { |
| if (s.size() < 2 || (s[0] != '+' && s[0] != '-')) { |
| return false; |
| } |
| for (int i = 1; i < s.size(); i++) { |
| if (!std::isdigit(s[i])) { |
| return false; |
| } |
| } |
| return true; |
| } |
| |
| bool ParseRelativeTime(const std::string& relative_time_str, |
| base::Time* output) { |
| if (!isNumber(relative_time_str)) { |
| return false; |
| } |
| const int64_t relative_time{std::stol(relative_time_str)}; |
| *output = base::Time::Now() + base::Seconds(relative_time); |
| return true; |
| } |
| |
| } // namespace croslog |