###前提・実現したいこと
C言語で文字列表記の日付からその曜日を求めるコードを書いています。以下のように実行されて欲しいです。
./trial.c 2018/01/10 2018/01/10 is Wednesday
###発生している問題・エラーメッセージ
参考サイトで紹介されていたコードを実行してみましたが、コンパイル時にエラーが出てしまいました。
参考サイト
% gcc -Wall trial.c -o trial trial.c: In function ‘main’: trial.c:12:3: warning: implicit declaration of function ‘memset’ [-Wimplicit-function-declaration] memset(&tm, 0, sizeof(tm)); ^ trial.c:12:3: warning: incompatible implicit declaration of built-in function ‘memset’ trial.c:12:3: note: include ‘<string.h>’ or provide a declaration of ‘memset’
###該当のソースコード
C
1/* header files */ 2#include <stdio.h> 3#include <stdlib.h> 4#include <time.h> 5 6/* functions */ 7int GetDayOfWeek(int year, int month, int day); 8void DisplayWeek(int wday); 9 10/* main */ 11int main(void) { 12 int year = 2009; 13 int month = 4; 14 int day = 20; 15 int week; 16 17 /* 日付の表示 */ 18 printf("%d/%d/%d: ", year, month, day); 19 20 /* 曜日を求める */ 21 week = GetDayOfWeek(year, month, day); 22 23 /* 曜日の表示 */ 24 DisplayWeek(week); 25 26 return EXIT_SUCCESS; 27} 28 29/** 30 * 曜日を求める 31 * @param[in] year 年 32 * @param[in] month 月 33 * @param[in] day 日 34 * @return 曜日(0を日曜日とする. エラー時は-1を返す) 35 */ 36int GetDayOfWeek(int year, int month, int day) { 37 struct tm time_in, *local; 38 time_t t; 39 40 /* 年月日を入力 */ 41 time_in.tm_year = year - 1900; /* 年 */ 42 time_in.tm_mon = month - 1; /* 月 */ 43 time_in.tm_mday = day; /* 日 */ 44 45 /* 時分秒曜日を適当に入力 */ 46 time_in.tm_hour = 1; /* 時 (適当に入力) */ 47 time_in.tm_min = 0; /* 分 (適当に入力) */ 48 time_in.tm_sec = 0; /* 秒 (適当に入力) */ 49 time_in.tm_wday = 0; /* 曜日 (適当に入力) */ 50 time_in.tm_yday = 0; /* 1月1日からの日数 (適当に入力) */ 51 52 /* mktime 関数で変換 */ 53 if ( (t = mktime(&time_in) ) == (time_t)(-1) ) { 54 return -1; 55 } 56 57 /* 地方時に変換 */ 58 local = localtime(&t); 59 60 return local->tm_wday; 61} 62 63/** 64 * 曜日を表示する 65 * @param[in] wday 曜日(0を日曜日とする) 66 */ 67void DisplayWeek(int wday) { 68 char weeks[][16] = { 69 "Sunday", 70 "Monday", 71 "Tuesday", 72 "Wednesday", 73 "Thursday", 74 "Friday", 75 "Saturday" 76 }; 77 78 printf("%s\n", weeks[wday]); 79}
###補足情報(言語/FW/ツール等のバージョンなど)
GNU Emacs 24.5.1
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/01/09 23:05