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)