| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- import { TimeFormatter } from "@/utils/time_format";
- import { useSelector } from "react-redux";
- // const common = useSelector((state: any) => state.common);
- export const pickerDurations = () => {
- const list: string[] = [];
- for (let i = 0; i <= 22 * 12; i++) {
- var count = i * 5 + 60;
- var hour = Math.floor(count / 60);
- var minute = count % 60;
- list.push(`${hour > 0 ? hour + '小时' : ''}${minute > 0 ? minute + '分钟' : ''}`);
- }
- return list;
- }
- //获取picker的取值范围,返回二维数组
- export const durationDatas = (common: any) => {
- var min: number = 1
- var max: number = 23
- var step: number = 5
-
- if (common.duration) {
- min = common.duration.min
- max = common.duration.max
- step = common.duration.step
- }
- var minutes: string[] = []
- for (let i = 0; i < 60; i += step) {
- minutes.push(i+'分钟')
- }
- var hours: string[] = []
- for (let i = min; i <= max; i++) {
- hours.push(i+'小时')
- }
- return [hours, minutes]
- }
- //通过开始时间和结束时间计算picker的index值,返回格式为[hourIndex,minuteIndex]
- export const durationIndex = (start: string, end: string,common: any) => {
- if ((start+'').indexOf(':') == -1) {
- start = TimeFormatter.formatTime(new Date(parseInt(start+'')));
- }
- if ((end+'').indexOf(':') == -1) {
- end = TimeFormatter.formatTime(new Date(parseInt(end+'')));
- }
- var min: number = 1
- var max: number = 23
- var step: number = 5
- // const common = useSelector((state: any) => state.common);
- if (common.duration) {
- min = common.duration.min
- max = common.duration.max
- step = common.duration.step
- }
- var startHour = parseInt(start.split(':')[0])
- var startMinute = parseInt(start.split(':')[1])
- var endHour = parseInt(end.split(':')[0])
- var endMinute = parseInt(end.split(':')[1])
- var startCount = startHour * 60 + startMinute
- var endCount = endHour * 60 + endMinute
- if (endCount < startCount) {
- endCount += 24 * 60
- }
- var leftCount = endCount - startCount
- var leftHour = Math.floor(leftCount / 60)
- var leftMinute = leftCount % 60
- leftHour = leftHour < min ? min : leftHour
- leftHour = leftHour > max ? max : leftHour
- return [leftHour - min, leftMinute / step]
- }
- //通过开始时间和结束时间计算duration,返回格式为[hour,minute]
- export const durationTime = (start: string, end: string) => {
- var startHour = parseInt(start.split(':')[0])
- var startMinute = parseInt(start.split(':')[1])
- var endHour = parseInt(end.split(':')[0])
- var endMinute = parseInt(end.split(':')[1])
- var startCount = startHour * 60 + startMinute
- var endCount = endHour * 60 + endMinute
- if (endCount < startCount) {
- endCount += 24 * 60
- }
- var leftCount = endCount - startCount
- var leftHour = Math.floor(leftCount / 60)
- var leftMinute = leftCount % 60
- // leftHour = leftHour < 1 ? 1 : leftHour
- // leftHour = leftHour > 23 ? 23 : leftHour
- return [leftHour, leftMinute]
- }
- export const getTitle = (data)=>{
- if (data.scenario == 'FAST'){
- if (data.status == 'WAIT_FOR_START'){
- return '开始断食'
- }
- return '结束断食'
- }
- else if (data.scenario == 'SLEEP'){
- if (data.status == 'WAIT_FOR_START'){
- return '开始睡眠'
- }
- return '结束睡眠'
- }
- else {
- if (data.status == 'WAIT_FOR_START'){
- return '开始断食'
- }
- else if (data.status == 'ONGOING1'){
- return '开始睡眠'
- }
- else if (data.state == 'ONGOING2'){
- return '结束睡眠'
- }
- return '结束睡眠'
- }
- }
|