void yesterday(int *y, int *m, int *d) { if(*m == 1) { /*1月の場合*/ if(*d >= 2 && *d <= 31) /*2〜31日の場合*/ (*d)--; else { /*その他(1日)の場合*/ *d = 31; *m = 12; (*y)--; } } else if(*m == 2) { /*2月の場合*/ if(IsLeepYear(*y)) { /*閏年の場合*/ if(*d >= 2 && *d <= 29) /*2〜29日の場合*/ (*d)--; else { /*その他(1日)の場合*/ *d = 31; (*m)--; } } else { /*平年の場合*/ if(*d >= 2 && *d <= 28) /*2〜28日の場合*/ (*d)--; else { /*その他(1日)の場合*/ *d = 31; (*m)--; } } } else if(*m == 3) { /*3月の場合*/ if(IsLeepYear(*y)) { /*閏年の場合*/ if(*d >= 2 && *d <= 31) /*2〜31日の場合*/ (*d)--; else { /*その他(1日)の場合*/ *d = 29; (*m)--; } } else { /*平年の場合*/ if(*d >= 2 && *d <= 31) /*2〜31日の場合*/ (*d)--; else { /*その他(1日)の場合*/ *d = 28; (*m)--; } } } /*4,6,9,11月の場合*/ else if(*m == 4 || *m == 6 || *m == 9 || *m == 11) { if(*d >= 2 && *d <= 30) /*2〜30日の場合*/ (*d)--; else { /*その他(1日)の場合*/ *d = 31; (*m)--; } } else { /*その他(5,7,8,10月)の場合*/ if(*d >= 2 && *d <= 31) /*2〜30日の場合*/ (*d)--; else { /*その他(1日)の場合*/ *d = 30; (*m)--; } } }