0

我正在集成到一个遗留应用程序,该应用程序生成最大文件名大小为 8 个字符的数据文件。我可以控制名称,并且希望能够将其基于当前日期和时间,精确到秒。它必须是独一无二的。

有没有人有任何好的想法或算法来实现这一点,没有任何状态?

我正在使用 C#,但欢迎任何语言或伪代码想法!

编辑:任何字符 A-Za-z0-9 只允许(为了安全起见),

4

4 回答 4

2

I think the easiest solution would be to store Unix time in hex, which would last 93 years from now.

于 2012-10-11T07:07:51.183 回答
2

If you can use more chars than 0-9 you could use a pattern where months and hours are encoded as letters

months = a-l
hours = a-y (depending on if you use w or not.)
days = 0-9 + a-...

This combined with 2 digit year and seconds in the hour as hex (3 chars) amounts to

yyMdhsss

于 2012-10-11T07:08:41.973 回答
2

您可以仅使用自 1/1/12 0:00 以来经过的秒数,但这只会持续 3 年。

假设不区分大小写,您可以使用 10 位数字和 26 个字母表以 36 为基数进行编码,这至少应该持续到您的一生。

于 2012-10-11T07:04:40.187 回答
0

在以上答案之一的范围内,

    year = 2 YY it's diff year from reference year say 2000. we can have 26+26+10 aphabets to combine !
    months = 1 M a-l map each month to single alphabet
    days = 1 D a-z A-G 
    hours = 1 H a-y (map a char to a-x)
    seconds = 1 60 a-z , A-Z 0-9 chars total 26+26+10 ==> 62 avaiable chars

以 GMT 格式保存所有日期以进行存储。

它适合 6 个字符!如果需要,我们可以再使用 1 个字符作为年份扩展。显然,我们需要自定义函数将时间日期从正常格式转换为这种格式。

于 2015-04-16T07:08:21.943 回答