teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

訂正

2018/05/02 10:35

投稿

nullpon
nullpon

スコア5739

answer CHANGED
@@ -1,1 +1,20 @@
1
+ struct tm → time_t → struct tmと変換すれば、よろしくやってくれます。
2
+ ```c
1
- #include <time.h>
3
+ #include <time.h>
4
+
5
+ void yesterday(int *y, int *m, int *d)
6
+ {
7
+ struct tm st = {0};
8
+ time_t tt;
9
+
10
+ st.tm_year = *y - 1900;
11
+ st.tm_mon = *m - 1;
12
+ st.tm_mday = *d - 1; /* 1日前の日付を設定 */
13
+
14
+ tt = mktime(&st);
15
+ st = *localtime(&tt);
16
+ *y = st.tm_year + 1900;
17
+ *m = st.tm_mon + 1;
18
+ *d = st.tm_mday;
19
+ }
20
+ ```