曜日を英語と日本語で表すリストから、その日の曜日を抜き出す際になぜか余計なものまで抜き出されてしまいます。
#include<stdio.h> #include<time.h> int main(int argc, char *rgv[]) { struct tm yed; struct tm *pt; time_t unix_time; char str_time[256]; time( &unix_time ); printf("現在時刻のUNIX時間は%ld秒です. \n\n", unix_time); pt = localtime( &unix_time ); yed = *pt; printf("***構造体tmのメンバを参照***\n"); printf("tm_sec : %d 秒\n", yed.tm_sec); printf("tm_min : %d 分\n", yed.tm_min); printf("tm_hour : %d 時\n", yed.tm_hour); printf("tm_mday : %d 日\n", yed.tm_mday); printf("tm_mon : %d 月(-1)\n", yed.tm_mon); printf(">>>tm_mon補正 : %d 月\n", yed.tm_mon + 1); printf("tm_year : %d 年(-1900)\n", yed.tm_year); printf(">>>tm_year補正 : %d 年\n", yed.tm_year + 1900); printf("tm_wday : %d (曜日コード)\n", yed.tm_wday); char e[7][3] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"}; char j[7][3] = {"日", "月", "火", "水", "木", "金", "土"}; if(yed.tm_wday == 0){ printf(">>>tm_wday英語 : %s\n", e[0]); printf(">>>tm_wday日本語 : %s\n",j[0]); } if(yed.tm_wday == 1){ printf(">>>tm_wday英語 : %s\n", e[1]); printf(">>>tm_wday日本語 : %s\n",j[1]); } if(yed.tm_wday == 2){ printf(">>>tm_wday英語 : %s\n", e[2]); printf(">>>tm_wday日本語 : %s\n",j[2]); } if(yed.tm_wday == 3){ printf(">>>tm_wday英語 : %s\n", e[3]); printf(">>>tm_wday日本語 : %s\n",j[3]); } if(yed.tm_wday == 4){ printf(">>>tm_wday英語 : %s\n", e[4]); printf(">>>tm_wday日本語 : %s\n",j[4]); } if(yed.tm_wday == 5){ printf(">>>tm_wday英語 : %s\n", e[5]); printf(">>>tm_wday日本語 : %s\n",j[5]); } if(yed.tm_wday == 6){ printf(">>>tm_wday英語 : %s\n", e[6]); printf(">>>tm_wday日本語 : %s\n",j[6]); } return 0; }
出力
現在時刻のUNIX時間は1562227997秒です. ***構造体tmのメンバを参照*** tm_sec : 17 秒 tm_min : 13 分 tm_hour : 17 時 tm_mday : 4 日 tm_mon : 6 月(-1) >>>tm_mon補正 : 7 月 tm_year : 119 年(-1900) >>>tm_year補正 : 2019 年 tm_wday : 4 (曜日コード) >>>tm_wday英語 : ThuFriSat >>>tm_wday日本語 : 木金土