OSDN Git Service

addid library source 20140221
[zither/ds-zither.git] / libms / day_minus.c
1 // day_minus.c
2 // masashi shimakura 20140223
3
4 #include "libms.h"
5
6 //  現在の年月で、一日前の日をかえす。(1 - 1 = 31)
7 int day_minus(int day_d)
8 {
9 int ret, day;
10 ret = -1;
11 day = 1;
12
13 if     (day_d <= 0){ day = 1; }
14 else if(day_d > 31){ day = 31; }
15 else               { day = day_d; }
16
17 if(day == 1){
18    switch(ctime_getr('m')){
19       case 1: ret = 31; break;
20       case 2: ret = 31; break;
21       case 3:
22       switch(ctime_getr('y')){
23          case 2008: ret = 29; break;
24          case 2009: ret = 28; break;
25          case 2010: ret = 28; break;
26          case 2011: ret = 28; break;
27          case 2012: ret = 29; break;
28          case 2013: ret = 28; break;
29          default: ret = 28; break;
30          }
31                         break;
32       case 4: ret = 31; break;
33       case 5: ret = 30; break;
34       case 6: ret = 31; break;
35       case 7: ret = 30; break;
36       case 8: ret = 31; break;
37       case 9: ret = 31; break;
38       case 10: ret = 30; break;
39       case 11: ret = 31; break;
40       case 12: ret = 30; break;
41       default: ret = 31; break;
42       }
43    }
44 else{ ret = day - 1; }
45
46 return ret;
47 }
48
49
50
51