142103316Sopenharmony_ci/* 242103316Sopenharmony_ci * Copyright (c) 2021 Huawei Device Co., Ltd. 342103316Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 442103316Sopenharmony_ci * you may not use this file except in compliance with the License. 542103316Sopenharmony_ci * You may obtain a copy of the License at 642103316Sopenharmony_ci * 742103316Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 842103316Sopenharmony_ci * 942103316Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 1042103316Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 1142103316Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1242103316Sopenharmony_ci * See the License for the specific language governing permissions and 1342103316Sopenharmony_ci * limitations under the License. 1442103316Sopenharmony_ci */ 1542103316Sopenharmony_ci 1642103316Sopenharmony_ciconst twelve = 12; 1742103316Sopenharmony_ci 1842103316Sopenharmony_ci/* 1942103316Sopenharmony_ci * date package tool class 2042103316Sopenharmony_ci */ 2142103316Sopenharmony_ciexport default class DateAndTimeUtil { 2242103316Sopenharmony_ci constructor() { 2342103316Sopenharmony_ci } 2442103316Sopenharmony_ci 2542103316Sopenharmony_ci /** 2642103316Sopenharmony_ci * 2742103316Sopenharmony_ci * Get the current time 2842103316Sopenharmony_ci */ 2942103316Sopenharmony_ci now() { 3042103316Sopenharmony_ci const datetime = new Date(); 3142103316Sopenharmony_ci const hours = datetime.getHours(); 3242103316Sopenharmony_ci const minutes = datetime.getMinutes(); 3342103316Sopenharmony_ci return this.concatTime(hours, minutes); 3442103316Sopenharmony_ci } 3542103316Sopenharmony_ci 3642103316Sopenharmony_ci /** 3742103316Sopenharmony_ci * 3842103316Sopenharmony_ci * Get the current time 3942103316Sopenharmony_ci */ 4042103316Sopenharmony_ci nowWithSeconds() { 4142103316Sopenharmony_ci const datetime = new Date(); 4242103316Sopenharmony_ci const hours = datetime.getHours(); 4342103316Sopenharmony_ci const minutes = datetime.getMinutes(); 4442103316Sopenharmony_ci const seconds = datetime.getMilliseconds() 4542103316Sopenharmony_ci console.info('now: ' + hours + ':' + minutes + ':' + seconds) 4642103316Sopenharmony_ci var now = this.concatTimeWithSeconds(hours, minutes, seconds); 4742103316Sopenharmony_ci console.info('now concat: ' + now); 4842103316Sopenharmony_ci return now; 4942103316Sopenharmony_ci } 5042103316Sopenharmony_ci 5142103316Sopenharmony_ci /** 5242103316Sopenharmony_ci * format 5342103316Sopenharmony_ci * @param value 5442103316Sopenharmony_ci * @return 5542103316Sopenharmony_ci */ 5642103316Sopenharmony_ci fill(value) { 5742103316Sopenharmony_ci return (value > 9 ? '' : '0') + value; 5842103316Sopenharmony_ci } 5942103316Sopenharmony_ci 6042103316Sopenharmony_ci /** 6142103316Sopenharmony_ci * concat date 6242103316Sopenharmony_ci * @param year m d 6342103316Sopenharmony_ci * @return 6442103316Sopenharmony_ci */ 6542103316Sopenharmony_ci concatDate(year, month, date) { 6642103316Sopenharmony_ci return year + this.year + month + this.month + date + this.day; 6742103316Sopenharmony_ci } 6842103316Sopenharmony_ci 6942103316Sopenharmony_ci concatTime(hours, minutes) { 7042103316Sopenharmony_ci return `${this.fill(hours)}:${this.fill(minutes)}`; 7142103316Sopenharmony_ci } 7242103316Sopenharmony_ci 7342103316Sopenharmony_ci concatTimeWithSeconds(hours, minutes, milliseconds) { 7442103316Sopenharmony_ci return `${this.fill(hours)}:${this.fill(minutes)}:${this.fill(milliseconds)}`; 7542103316Sopenharmony_ci } 7642103316Sopenharmony_ci 7742103316Sopenharmony_ci /** 7842103316Sopenharmony_ci * Turn to 24-hour clock 7942103316Sopenharmony_ci * @param str 8042103316Sopenharmony_ci * @return 8142103316Sopenharmony_ci */ 8242103316Sopenharmony_ci transform24(str) { 8342103316Sopenharmony_ci const timeFlag = str.substr(0, 2); 8442103316Sopenharmony_ci if (timeFlag == this.morning) { 8542103316Sopenharmony_ci const h = str.substr(2).split(':')[0]; 8642103316Sopenharmony_ci if (h == twelve) { 8742103316Sopenharmony_ci const time = '0' + ':' + str.substr(2).split(':')[1]; 8842103316Sopenharmony_ci return time; 8942103316Sopenharmony_ci } else { 9042103316Sopenharmony_ci return h + ':' + str.substr(2).split(':')[1]; 9142103316Sopenharmony_ci } 9242103316Sopenharmony_ci } else { 9342103316Sopenharmony_ci const h = str.substr(2).split(':')[0]; 9442103316Sopenharmony_ci const h1 = parseInt(h) + twelve; 9542103316Sopenharmony_ci if (h != twelve) { 9642103316Sopenharmony_ci const time = h1 + ':' + str.substr(2).split(':')[1]; 9742103316Sopenharmony_ci return time; 9842103316Sopenharmony_ci } 9942103316Sopenharmony_ci } 10042103316Sopenharmony_ci } 10142103316Sopenharmony_ci 10242103316Sopenharmony_ci /** 10342103316Sopenharmony_ci * Turn to 12-hour clock 10442103316Sopenharmony_ci * @param str 10542103316Sopenharmony_ci * @return 10642103316Sopenharmony_ci */ 10742103316Sopenharmony_ci transform12(str) { 10842103316Sopenharmony_ci const hours = str.substring(0, str.indexOf(':')); 10942103316Sopenharmony_ci const minutes = str.split(':')[1]; 11042103316Sopenharmony_ci if (hours < twelve) { 11142103316Sopenharmony_ci return this.morning.concat(`${hours}:${minutes}`); 11242103316Sopenharmony_ci } 11342103316Sopenharmony_ci if (hours == twelve) { 11442103316Sopenharmony_ci return this.afternoon.concat(`${hours}:${minutes}`); 11542103316Sopenharmony_ci } else { 11642103316Sopenharmony_ci const reduceHours = parseInt(hours) - twelve; 11742103316Sopenharmony_ci return this.afternoon.concat(`${reduceHours}:${minutes}`); 11842103316Sopenharmony_ci } 11942103316Sopenharmony_ci } 12042103316Sopenharmony_ci} 121