计算星期几

作者: , 共 253 字

一个短小、高效的 C++函数,用来判断指定日期是星期几:

int day_of_week(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;
}

注意, 0 表示星期日, 1-6 表示星期一到星期六。

Q. E. D.

类似文章:
相似度: 0.164
编程 » C++
C++的浮点数转整数有四种方法,直接类型转换、round、floor、ceil。其效果如下表:
http://senlinzhan.github.io/2017/12/04/cpp-memory-order/ 写得最浅显易懂。记录一下以备查询。
编程 » C++, 内存检查, Linux
获取程序占用的内存量,是一个诡异的需求。但程序写多了,有时候还真需要,尤其是代码运行出现问题的时候。
递归算法的复杂度通常很难衡量,一般都认为是每次递归分支数的递归深度次方。但通常情况下没有这个大,如果我们可以保存每次子递归的结果的话,递归算法的复杂性等于不同的节点个数。这也是动态规划算法思想的由来。
一个好用的 C++性能分析工具需满足几个条件:
编程 » C++, C++11
花括号初始化是C++11引入的一种初始化方法。
编程 » 算法, 算法分析
下面这个求\( 1/\sqrt{x}\) 的函数号称比直接调用 sqrt 库函数快 4 倍,来自游戏 Quake III 的源代码。
相似度: 0.079
boost是除std外最常用的 C++库,覆盖很多常用操作。目前最新的版本是1.59.0
编程 » C++, 编译错误
在 gcc 中,存在继承关系的模版类,子类无法直接访问父类的成员,即使该成员是protectedpublic
Xie Xie 给我看了一个链接性能调优--永远超乎想象,里面提到了素数筛法的复杂度,作者用实验发现此筛法是线形的。
编程 » C++, C++11
花括号初始化是C++11引入的一种初始化方法。
boost是除std外最常用的 C++库,覆盖很多常用操作。目前最新的版本是1.59.0