TOP >> マニアックなプログラミング
トリッキーコードネット トリッキーなコード

【トリッキーなコード】エレガントな曜日の表示手法 (C言語)

C言語で、現在の曜日をエレガントに表示させる小技です♪

time_t tt = time( NULL ); struct tm * ptm = localtime(&tt); printf("%.2s曜日", "日月火水木金土" + ptm->tm_wday * 2);
または、
time_t tt = time( NULL ); struct tm * ptm = localtime(&tt); printf("%s曜日", &("日\0月\0火\0水\0木\0金\0土"[ptm->tm_wday * 3]) );

Cコード例

#include <stdio.h> #include <time.h> int main(void) { time_t tt = time( NULL ); struct tm * ptm = localtime(&tt); printf("%.2s曜日", "日月火水木金土" + ptm->tm_wday * 2); printf("%s曜日", &("日\0月\0火\0水\0木\0金\0土"[ptm->tm_wday * 3]) ); }
結果は、OSの現在の曜日が2回表示されます。 補足しておくと、 1つめの出力は、文字列("日月火水木金土")の2byteずつの区切りから、%.2sで2byteだけを出力します。 2つめの出力は、文字列の3byteずつの区切りから、%sでNULLまでを出力します。 (日、月、...、土の文字が、必ず2byteで構成されている事が前提です^^;)
ひょっとしたら参考になるかもしれないページ : たった2行でカレンダーを表示するプログラム
トリッキーコードネット の TOPへ HOTNEWS の 総合TOPへ