Monthly Archives: April 2009

计算任意日期是星期几的方法──蔡勒公式(Zeller's congruence)

我们经常需要计算一个日期是星期几,比较好想的方法是知道一个日期是星期几(比如 1900 年 1 月 1 日是周一),然后一天一天地数……效率有点低,呵呵。改进一点可以一次数一个月或者数一年,不过貌似得用到什么偏移表什么的,不够麻烦的。 来,我们说说蔡勒公式。形式非常诡异和神奇: [tex]$$dayOfWeek = \left(d + \left\lfloor\frac{26(m+1)}{10}\right\rfloor + y + \left\lfloor\frac{y}{4}\right\rfloor + 6 \left\lfloor\frac{y}{100}\right\rfloor + \left\lfloor\frac{y}{400}\right\rfloor\right) \mod 7$$[/tex] 这里我写的是一种比较适用于计算机计算的公式,其他的形式可以参看维基百科。 上式中,y 是年份,m 是月份,d 是日期,dayOfWeek 就是星期几了(以 0 为星期六,1 为星期日,依此类推)。特别注意,如果月份是一月或者二月,要把它们当作上一年的十三月、十四月。 当然,这个公式只适用于格里历,很久以前的事它就管不了了。 Tags:calendar

Posted in Information Technology | Tagged | 5 Comments

怎样废弃 PGP 密钥

由于种种原因,比如密钥已经泄露,或者你改了名字或者 email,你很可能需要废弃以前使用的 PGP 密钥,简单地不用它总不太好吧,我们来告诉别人你已经不再用这个密钥了。 以 GnuPG 为例: 首先,我们需要拿到 PGP 密钥的废弃证书: gpg -o revoke.asc --gen-revoke user-id(替换成你自己的 user-id) 这样我们就把废弃证书写到 revoke.asc 里了。其实废弃密钥应该在产生密钥对的时候就生成,然后放在安全的地方,当然我比较懒…… 之后我们导入废弃证书: gpg --import revoke.asc 这样我们就废弃了这个证书,最后我们把废弃掉的 PGP 公钥发到 keyserver 上。 gpg --send-key key-id (用 gpg --list-keys 列出 key-id) 好了,这样大家就都知道你的 PGP 密钥已经 revoked … Continue reading

Posted in Information Technology | Tagged , | 2 Comments