计算任意日期是星期几的方法──蔡勒公式(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:

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 了。

Tags:,

Posted in Information Technology | Tagged , | 2 Comments

WoW

From WoW
Tags:,

Posted in game, life | Tagged , | 1 Comment

'long long long' is too long for GCC

From blog

From blog
Tags:

Posted in Information Technology | Tagged | 7 Comments

Mac 上玩国服魔兽世界(WoW)

在 Mac OS X 上玩 World of Warcraft 的问题已经有不少人说过了,貌似都是说的 X-Only 这里的方法,不过我决的方法有点太麻烦,要不就得找台服,要不就得下载 .app。前几天在某论坛上闲逛,看到一个非常简单的方法,在这里说下。

  1. 首先下载国服(好吧,这是废话),然后安装好。
  2. 然后下载 MPQ Editor
  3. 用 MPQ Editor 打开 WoW 安装目录下的 \Data\zhCN\base-zhCN.MPQ,在里面找到 World of Warcraft.app(Windows 下看到应该是个文件夹),把它解压出来,放在安装目录里。
  4. 把安装目录 copy 到 Mac 下。
  5. 运行 World of Warcraft.app。
  6. Have fun.

如果没有 Windows 应该也没有问题,下载绿色版魔兽世界,Wine(CrossOver)一个 MPQ Editor,当然,我没试过。(或者找我要个 World of Warcraft.app?26.1MB)

既然 .MPQ 里面有 .app,那九城为什么不放出 Mac 版本呢?想不通……

在国服 3.0.5 版本测试通过。

Tags:,

Posted in game, life | Tagged , | 4 Comments