UNIXの時刻はPOSIXタイムで、協定世界時(UTC)の1970年1月1日午前0時0分0秒からの経過秒数*1で表現されるのです。
それなら単純にintの足し算で表現できるんじゃ・・・とおもったけどtime_tを経由するので意外とパパっと出来なかった。
UNIXのINT秒を足し算して日付(時刻)を進める。
#include <stdio.h> #include <time.h> #include <stdlib.h> int main(){ time_t target_time,temp_time; struct tm* target_time_tm; char* time_string; int string_length=20; int i; time_string = (char*)malloc(string_length*sizeof(char)); time(&target_time); for(i=0; i<20;i++){ temp_time = target_time + 60*60*24*i; target_time_tm = localtime(&temp_time); strftime(time_string, string_length, "%Y年%m月%d日", target_time_tm); fprintf(stdout, "%s\n", time_string); } }
C言語の教科書を読まずに考えたのだけれど、もっと良いやり方あるのかな。。。