前面4位是当前年份,后面4位自增的编号生成
时间: 2024-02-24 13:57:49 浏览: 10
好的,您可以考虑使用以下的 Python 代码来实现您的需求:
```python
import datetime
class IDGenerator:
def __init__(self):
self.current_year = datetime.datetime.now().year
self.current_id = 0
def generate_id(self):
current_year = datetime.datetime.now().year
if current_year != self.current_year:
self.current_year = current_year
self.current_id = 0
self.current_id += 1
return str(self.current_year) + str(self.current_id).zfill(4)
# 示例代码
id_generator = IDGenerator()
print(id_generator.generate_id()) # 20210001
print(id_generator.generate_id()) # 20210002
print(id_generator.generate_id()) # 20210003
print(id_generator.generate_id()) # 20210004
```
这个代码中,我们定义了一个 IDGenerator 类,它在初始化时记录了当前的年份和当前的编号。在每次生成新的编号时,如果年份发生了变化,就会将当前的年份更新,并将当前的编号重置为 0。然后,我们将当前的年份和编号拼接起来,得到一个 8 位的编号。其中,编号部分使用了 `zfill` 函数来保证其长度为 4 位,不足的部分以 0 进行填充。