125c1cde8Sopenharmony_ci/* 225c1cde8Sopenharmony_ci * Copyright (C) 2021 Huawei Device Co., Ltd. 325c1cde8Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 425c1cde8Sopenharmony_ci * you may not use this file except in compliance with the License. 525c1cde8Sopenharmony_ci * You may obtain a copy of the License at 625c1cde8Sopenharmony_ci * 725c1cde8Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 825c1cde8Sopenharmony_ci * 925c1cde8Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 1025c1cde8Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 1125c1cde8Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1225c1cde8Sopenharmony_ci * See the License for the specific language governing permissions and 1325c1cde8Sopenharmony_ci * limitations under the License. 1425c1cde8Sopenharmony_ci */ 1525c1cde8Sopenharmony_ci 1625c1cde8Sopenharmony_ci#ifndef TELEPHONY_TIME_UTIL_H 1725c1cde8Sopenharmony_ci#define TELEPHONY_TIME_UTIL_H 1825c1cde8Sopenharmony_ci 1925c1cde8Sopenharmony_ci#include <ctime> 2025c1cde8Sopenharmony_ci#include <cstring> 2125c1cde8Sopenharmony_ci 2225c1cde8Sopenharmony_cinamespace OHOS { 2325c1cde8Sopenharmony_cinamespace Telephony { 2425c1cde8Sopenharmony_civoid FormatDate(std::string &date, const tm *ltm) 2525c1cde8Sopenharmony_ci{ 2625c1cde8Sopenharmony_ci if (ltm != nullptr) { 2725c1cde8Sopenharmony_ci int START_YEAR = 1900; 2825c1cde8Sopenharmony_ci int DOUBLE_DIGIT = 10; 2925c1cde8Sopenharmony_ci int year = START_YEAR + ltm->tm_year; 3025c1cde8Sopenharmony_ci int month = 1 + ltm->tm_mon; 3125c1cde8Sopenharmony_ci int day = ltm->tm_mday; 3225c1cde8Sopenharmony_ci int hour = ltm->tm_hour; 3325c1cde8Sopenharmony_ci int minute = ltm->tm_min; 3425c1cde8Sopenharmony_ci int second = ltm->tm_sec; 3525c1cde8Sopenharmony_ci date.append(std::to_string(year)); 3625c1cde8Sopenharmony_ci date.append("-"); 3725c1cde8Sopenharmony_ci if (month < DOUBLE_DIGIT) { 3825c1cde8Sopenharmony_ci date.append("0"); 3925c1cde8Sopenharmony_ci } 4025c1cde8Sopenharmony_ci date.append(std::to_string(month)); 4125c1cde8Sopenharmony_ci date.append("-"); 4225c1cde8Sopenharmony_ci if (day < DOUBLE_DIGIT) { 4325c1cde8Sopenharmony_ci date.append("0"); 4425c1cde8Sopenharmony_ci } 4525c1cde8Sopenharmony_ci date.append(std::to_string(day)); 4625c1cde8Sopenharmony_ci date.append(" "); 4725c1cde8Sopenharmony_ci if (hour < DOUBLE_DIGIT) { 4825c1cde8Sopenharmony_ci date.append("0"); 4925c1cde8Sopenharmony_ci } 5025c1cde8Sopenharmony_ci date.append(std::to_string(hour)); 5125c1cde8Sopenharmony_ci date.append(":"); 5225c1cde8Sopenharmony_ci if (minute < DOUBLE_DIGIT) { 5325c1cde8Sopenharmony_ci date.append("0"); 5425c1cde8Sopenharmony_ci } 5525c1cde8Sopenharmony_ci date.append(std::to_string(minute)); 5625c1cde8Sopenharmony_ci date.append(":"); 5725c1cde8Sopenharmony_ci if (second < DOUBLE_DIGIT) { 5825c1cde8Sopenharmony_ci date.append("0"); 5925c1cde8Sopenharmony_ci } 6025c1cde8Sopenharmony_ci date.append(std::to_string(second)); 6125c1cde8Sopenharmony_ci } 6225c1cde8Sopenharmony_ci} 6325c1cde8Sopenharmony_ci 6425c1cde8Sopenharmony_civoid GetCurrentTime(std::string &date) 6525c1cde8Sopenharmony_ci{ 6625c1cde8Sopenharmony_ci time_t *DEFAULT_TIMER = 0; 6725c1cde8Sopenharmony_ci time_t now = time(DEFAULT_TIMER); 6825c1cde8Sopenharmony_ci if (now == -1) { 6925c1cde8Sopenharmony_ci return; 7025c1cde8Sopenharmony_ci } 7125c1cde8Sopenharmony_ci struct tm tm = { 0 }; 7225c1cde8Sopenharmony_ci struct tm *ltm = localtime_r(&now, &tm); 7325c1cde8Sopenharmony_ci if (ltm == nullptr) { 7425c1cde8Sopenharmony_ci return; 7525c1cde8Sopenharmony_ci } 7625c1cde8Sopenharmony_ci FormatDate(date, ltm); 7725c1cde8Sopenharmony_ci} 7825c1cde8Sopenharmony_ci 7925c1cde8Sopenharmony_civoid GetTimeOfThirty(std::string &date) 8025c1cde8Sopenharmony_ci{ 8125c1cde8Sopenharmony_ci int64_t THIRTY_DAYS = 2592000; 8225c1cde8Sopenharmony_ci time_t *DEFAULT_TIMER = 0; 8325c1cde8Sopenharmony_ci time_t now = time(DEFAULT_TIMER) - THIRTY_DAYS; 8425c1cde8Sopenharmony_ci date = std::to_string(now); 8525c1cde8Sopenharmony_ci} 8625c1cde8Sopenharmony_ci} // namespace Telephony 8725c1cde8Sopenharmony_ci} // namespace OHOS 8825c1cde8Sopenharmony_ci#endif // TELEPHONY_TIME_UTIL_H 89