Mapper
z2loc.c
Go to the documentation of this file.
1 #include <stdio.h>
2 #include <string.h>
3 #include <stdlib.h>
4 #include <math.h>
5 #include <time.h>
6 #include <sys/stat.h>
7 #include <sys/types.h>
8 #include <dirent.h>
9 #include <errno.h>
10 #include <unistd.h>
11 #include <ctype.h>
12 #include <signal.h>
13 
14 int char_time(int itime, char *ctime)
15 {
16 int hr;
17  hr=itime/100;
18  if(hr>=12)
19  {
20  hr=hr-12;
21  if(hr==0) hr=12;
22  sprintf(ctime,"%2dPM",hr);
23  }
24  else
25  {
26  if(hr==0) hr=12;
27  sprintf(ctime,"%2dAM",hr);
28  }
29 }
30 
31 int z2loc(int yy,int mm,int dd,int hh)
32 {
33 FILE *pf, *popen();
34 char day[80];
35 char line1[80];
36 int day_num;
37 int daylight=-7;
38 int standard=-8;
39 
40  if(mm>=4 && mm<=10)
41  return(daylight);
42  if(mm>=12 || mm<=2)
43  return(standard);
44 
45  /* get day number */
46  sprintf(line1,"date +\'%w\' -d \'%02d/%02d/%04d %02d:00\'",mm,dd,yy,hh);
47  pf=popen(line1,"r");
48  fgets(day,sizeof(day),pf);
49  pclose(pf);
50  sscanf(day,"%d",&day_num);
51  if(!day_num) day_num=7;;
52 
53  /* November, 1st Sunday*/
54  if(mm==11)
55  {
56  if(dd>=8)
57  return(standard);
58  if(day_num==7)
59  {
60  if(hh>=10)
61  return(standard);
62  else
63  return(daylight);
64  }
65  else
66  {
67  if(day_num-dd<=0)
68  return(standard);
69  else
70  return(daylight);
71  }
72  }
73 
74  /* March, second Sunday */
75  if(mm==3)
76  {
77  if(dd<=7)
78  return(standard);
79  if(dd >=15)
80  return(daylight);
81  if(day_num==7)
82  {
83  if(hh>=10)
84  return(daylight);
85  else
86  return(standard);
87  }
88  else
89  {
90  if(day_num-dd>=-7)
91  return(standard);
92  else
93  return(daylight);
94  }
95  }
96  return(0);
97 }
int day
Definition: display_data.c:26
sprintf(fbuf,"/usr/mapper/nexrad/ngrid.%02d-%02d-%02d-%02d", year, month, day, hour)
double yy
Definition: mapp2h.h:41
time_t itime[500]
Definition: mapper.c:150
int z2loc(int yy, int mm, int dd, int hh)
Definition: z2loc.c:31
int char_time(int itime, char *ctime)
Definition: z2loc.c:14