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行でカレンダーを表示するプログラム