我需要创建一个条形码,其中包含时间戳(包括年、月、日、小时和分钟)等数据。考虑到代码长度有限,我需要这个时间戳尽可能短。
我的想法是获取 UNIX 时间戳,除以 60(删除“秒”数据),然后将其转换为十六进制。例子:
这样我就可以从 10 个字符增加到 7 个字符。我还考虑使用不同的基数,例如基数 36,这只能产生 5 个字符。
有没有更好的方法来做到这一点,这可能会导致条形码中的字符更少?除了转换为更高的基数之外,还有其他方法可以解决此问题吗?
小智 5
定义您想要支持的最短时间并计算自该时间以来的分钟数,并按照您的建议删除秒数。在代码支持的基数中对该值进行编码,例如代码 39 的基数 43。该代码中的 5 个字符允许您表示近 280 年的时间跨度(43^5 分钟)。