閏秒のチェック

どこかに載っていたんだけど、どこだっけな…。


次のプログラムを実行すれば、

#include <stdio.h>
#include <time.h>
#include <sys/types.h>

int main(int argc, char* argv[]){
    time_t t = (time_t)915148820;
    printf("08:59:59 - %s", ctime(&t));
    t++;
    printf("08:59:60 - %s", ctime(&t));
    t++;
    printf("09:00:00 - %s", ctime(&t));
    return(0);
}

うるう秒に対応したシステムでは、

Fri Jan  1 08:59:59 1999
Fri Jan  1 08:59:60 1999
Fri Jan  1 09:00:00 1999

逆に対応していないシステムでは、

Fri Jan  1 09:00:20 1999
Fri Jan  1 09:00:21 1999
Fri Jan  1 09:00:22 1999

と表示される。