| | |
| | | import {Injectable} from '@angular/core'; |
| | | |
| | | import * as moment from 'moment'; |
| | | import { TimePeriod } from '@business/entity/data'; |
| | | import { TimeUnits } from '@business/enum/types.enum'; |
| | | |
| | | @Injectable() |
| | | export class DateService { |
| | |
| | | today(format: string) { |
| | | return moment().format(format); |
| | | } |
| | | /** |
| | | * 获取时间区间,粒度数值 |
| | | */ countTimeRange(timePeriod: TimePeriod): number { |
| | | let timeUnit = 0; |
| | | switch (timePeriod.timeUnits) { |
| | | case TimeUnits.YEAR: |
| | | timeUnit = 1000 * 60 * 60 * 24 * 30 * 12; break; |
| | | case TimeUnits.MONTH: |
| | | timeUnit = 1000 * 60 * 60 * 24 * 30; break; |
| | | case TimeUnits.DAY: |
| | | timeUnit = 1000 * 60 * 60 * 24; break; |
| | | case TimeUnits.HOUR: |
| | | timeUnit = 1000 * 60 * 60; break; |
| | | case TimeUnits.MINUTE: |
| | | timeUnit = 1000 * 60; break; |
| | | } |
| | | return Math.floor((timePeriod.endTime.getTime() - timePeriod.startTime.getTime()) / timeUnit); |
| | | } |
| | | makeTimeList(timePeriod: TimePeriod): string [] { |
| | | const start = moment(timePeriod.startTime); |
| | | const end = moment(timePeriod.endTime); |
| | | const timeList: string[] = []; |
| | | let timeUnit: moment.DurationInputArg2 = 'day'; |
| | | let formatStyle = ''; |
| | | switch (timePeriod.timeUnits) { |
| | | case TimeUnits.YEAR: |
| | | formatStyle = 'YYYY'; |
| | | timeUnit = 'year'; break; |
| | | case TimeUnits.MONTH: |
| | | formatStyle = 'YYYY-MM'; |
| | | timeUnit = 'month'; break; |
| | | case TimeUnits.DAY: |
| | | formatStyle = 'YYYY-MM-DD'; |
| | | timeUnit = 'day'; break; |
| | | case TimeUnits.HOUR: |
| | | formatStyle = 'YYYY-MM-DD HH'; |
| | | timeUnit = 'hour'; break; |
| | | case TimeUnits.MINUTE: |
| | | formatStyle = 'YYYY-MM-DD HH:mm'; |
| | | timeUnit = 'minute'; break; |
| | | } |
| | | do { |
| | | const outTime = start.format(formatStyle); |
| | | timeList.push(outTime); |
| | | start.add(1, timeUnit); |
| | | }while (start.valueOf() < end.valueOf()); |
| | | return timeList; |
| | | } |
| | | } |