hyb
2025-12-23 c980682a1fe205d8c21d349e9fc6b9e4951aea34
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
import random
from datetime import datetime, timedelta
class RandomUtil:
    @staticmethod
    # 随机生成数字字符串
    def generate_random_number_string(start: str, end: str) -> str:
        """
        在指定范围内生成一个随机数字字符串。
 
        :param start: 范围起始值(包含),数字字符串形式
        :param end: 范围终止值(包含),数字字符串形式
        :return: 生成的随机数字字符串
        :raises ValueError: 如果输入的字符串不能转换为数字或者起始值大于终止值
        """
        try:
            start_num = int(start)
            end_num = int(end)
        except ValueError as e:
            raise ValueError("输入的字符串必须为有效的数字") from e
 
        if start_num > end_num:
            raise ValueError("起始值不能大于终止值")
 
        # 使用 random.randint 生成包含 start_num 和 end_num 的随机数
        random_number = random.randint(start_num, end_num)
        return str(random_number)
 
    # 随机生成年月日
    def generate_random_date(start_date: str, end_date: str) -> str:
        """
        在指定的年月日范围内随机生成一个日期字符串,格式为 %Y-%m-%d。
 
        :param start_date: 起始日期字符串,格式为 "YYYY-MM-DD"
        :param end_date: 结束日期字符串,格式为 "YYYY-MM-DD"
        :return: 随机生成的日期字符串
        :raises ValueError: 如果日期格式不正确或者起始日期大于结束日期
        """
        try:
            start = datetime.strptime(start_date, "%Y-%m-%d")
            end = datetime.strptime(end_date, "%Y-%m-%d")
        except ValueError as e:
            raise ValueError("输入的日期字符串必须为 'YYYY-MM-DD' 格式") from e
 
        if start > end:
            raise ValueError("起始日期不能大于结束日期")
 
        # 计算起始和结束日期之间的天数差
        delta_days = (end - start).days
 
        # 随机选择一个偏移天数
        random_days = random.randint(0, delta_days)
 
        # 计算随机日期
        random_date = start + timedelta(days=random_days)
        return random_date.strftime("%Y-%m-%d")
 
# 示例用法
if __name__ == '__main__':
    start = "1000"
    end = "9999"
    random_str = RandomUtil.generate_random_number_string(start, end)
    print("随机生成的数字字符串为:", random_str)