トリッキーコードネット トップへ戻る   C/C++, Java, Perl, PHP, JavaScript, アルゴリズム, ショートコーディング, IOCCCコードの解説, 等々

サイト情報

トリッキーなコード

7行プログラミング

物凄いコード集

アルゴリズム

データ構造

C/C++な話題

コードサンプル

ツール/環境構築

開発ノウハウ 等

ネタ/ジョーク集

おススメ書籍/サイト

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

エレガントな曜日表示手法 (C言語)

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

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]) );

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行でカレンダーを表示するプログラム
         このエントリーをはてなブックマークに追加   


作業効率化・ライフハックのオススメ記事




コンピュータ・テクノロジーのオススメ記事





恋愛・人間関係のオススメ記事




※ 当サイトは、トップページからリンクで辿る事の出来るページに限り、リンクフリーです。
※ 当サイトの閲覧/利用によって生じた如何なる損害も、当サイト管理人は責任を負いません。
※ 当サイトの内容を転載される場合は、当サイトへのリンクをお願い致します。