21.27 由一个日期, 怎样知道是星期几?

用 mktime() 或 localtime() (参见问题 13.11  和 13.12, 如果 tm_hour 的值位 0, 要注意 DST (夏时制) 的调整); 或者 Zeller 的 congruence (参阅 sci.math FAQ); 或者这个由 Tomohiko Sakamoto 提供的优雅的代码:
    int dayofweek(int y, int m, int d)  /* 0 = Sunday */
    {
    static int t[] = {0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4};
    y -= m < 3;
    return (y + y/4 - y/100 + y/400 + t[m-1] + d) % 7;
    }

参见问题 13.12 和 20.28

参考资料: [ISO, Sec. 7.12.2.3]。

翻译朱群英、孙云, LaTeX2HTML 编译 朱群英 (2005-06-23)