我需要创建一个条形码,其中包含一个时间戳,包括年,月,日,小时和分钟。鉴于代码长度有限,我需要这个时间戳尽可能短。
我的想法是获取UNIX时间戳,除以60(删除"秒"数据),然后将其转换为十六进制。例如:
这样我可以从10个字符到7个字符。我还想过使用不同的基数,比如基数36,它只能产生5个字符。
有没有更好的方法,这可能会导致条形码中的字符更少?除了转换到更高的基础之外,还有其他方法解决这个问题吗?
答案 0 :(得分:2)
定义您想要支持的最短时间,并根据您的建议,在删除秒数之后计算自那时起的分钟数。在代码支持的基础中对该值进行编码,例如代码39的基数为43.该代码中的5个字符允许您表示近280年(43 ^ 5分钟)的时间跨度。