eight
2025-03-31 fe679e3b438325c689eafa6e6fe0ee455ec59b8e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
package cn.lihu.jh.module.ecg;
 
import cn.lihu.jh.module.ecg.service.queue.BedQueueBO;
import jodd.typeconverter.impl.LocalTimeConverter;
 
import java.time.LocalTime;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
 
public class Utils {
    public static LocalTime parseTime(String strTime) {
        String regex = "(\\d+)[::](\\d+)";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(strTime);
 
        if (!matcher.find())
            return null;
 
        // 获取整个匹配的字符串
        String fullMatch = matcher.group();
 
        // 获取第一个捕获组(小时)
        String strOpenHour = matcher.group(1);
 
        // 获取第二个捕获组(分钟)
        String strOpenMinute = matcher.group(2);
 
        LocalTime localTime = LocalTime.of(Integer.valueOf(strOpenHour), Integer.valueOf(strOpenMinute));
        return localTime;
    }
 
    public static List<LocalTime> parseOpeningTime(String strOpeningTime) {
        String regex = "(\\d+)[::](\\d+)~(\\d+)[::](\\d+)";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(strOpeningTime);
 
        if (!matcher.find())
            return null;
 
        // 获取整个匹配的字符串
        String fullMatch = matcher.group();
 
        // 获取第一个捕获组(小时)
        String strOpenHour = matcher.group(1);
 
        // 获取第二个捕获组(分钟)
        String strOpenMinute = matcher.group(2);
 
        // 获取第一个捕获组(小时)
        String strCloseHour = matcher.group(3);
 
        // 获取第二个捕获组(分钟)
        String strCloseMinute = matcher.group(4);
 
        LocalTime localOpenTime = LocalTime.of(Integer.valueOf(strOpenHour), Integer.valueOf(strOpenMinute));
        LocalTime localCloseTime = LocalTime.of(Integer.valueOf(strCloseHour), Integer.valueOf(strCloseMinute));
        List openCloseTime = new ArrayList<LocalTime>();
        openCloseTime.add(localOpenTime);
        openCloseTime.add(localCloseTime);
        return openCloseTime;
    }
 
    public static String  formatRoomBed(Long roomId, String bedNo) {
        return String.format("%09d%s", roomId, bedNo);
    }
 
    public static List<LocalTime> parseTimeSlotList(String strTimeSlotList, Integer timeslotLength) {
        List<LocalTime> localTimeList = new ArrayList<>();
 
        // 7:30,8:30,9:30,10:30,11:30,12:30,13:30,14:30,15:30
        String[] arrTimeSlotItemStr = strTimeSlotList.split(",|,");
        Arrays.stream(arrTimeSlotItemStr).forEach( strTimeSlot -> {
            String regex = "(\\d+)[::](\\d+)";
            Pattern pattern = Pattern.compile(regex);
            Matcher matcher = pattern.matcher(strTimeSlot);
            if (!matcher.find())
                return;
 
            // 获取整个匹配的字符串
            String fullMatch = matcher.group();
 
            // 获取第一个捕获组(小时)
            String strHour = matcher.group(1);
 
            // 获取第二个捕获组(分钟)
            String strMinute = matcher.group(2);
 
            LocalTime localTimeSlot = LocalTime.of(Integer.valueOf(strHour), Integer.valueOf(strMinute));
            localTimeList.add( localTimeSlot );
        } );
 
        return localTimeList;
    }
}