1 Star 1 Fork 5

liuyang/XAPI2

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
IDGenerator.cpp 1.05 KB
一键复制 编辑 原始数据 按行查看 历史
Muggle Wei 提交于 2018-08-24 15:25 +08:00 . compiled success in linux
#include "stdafx.h"
#include "IDGenerator.h"
#include <stdio.h>
#include <time.h>
#include <string.h>
CIDGenerator::CIDGenerator()
{
m_id = 0;
memset(m_IDString, 0, sizeof(OrderIDType));
memset(m_Prefix, 0, sizeof(OrderIDType));
}
CIDGenerator::~CIDGenerator()
{
}
void CIDGenerator::SetPrefix(const char* prefix)
{
strncpy(m_Prefix, prefix, 32);
}
unsigned int CIDGenerator::GetID()
{
return ++m_id;
}
unsigned int CIDGenerator::GetTimeID()
{
time_t lt;
lt = time(nullptr);
struct tm *ptr;
ptr = localtime(&lt);
// 1970年开始移动到2015年开始
// long 其实是无符号int,所以*10000会溢出
// *1000 在当天下单数超过1000时才会影响前面的秒
// 如果快速的重复登录,出现第一次已经下到1000笔,第二次登录时在1秒后又下,才会出现ID重复
unsigned int x = ((ptr->tm_wday * 24 + ptr->tm_hour) * 450 + (ptr->tm_min * 60 + ptr->tm_sec)) * 100 + GetID();
return x;
}
const char* CIDGenerator::GetIDString()
{
snprintf(m_IDString, sizeof(m_IDString), "%s:%ld", m_Prefix, ++m_id);
return m_IDString;
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/ctosoft/XAPI2.git
git@gitee.com:ctosoft/XAPI2.git
ctosoft
XAPI2
XAPI2
master

搜索帮助