|
|
1.1 root 1: #include "sky.h"
2:
3: int timezone = 5;
4: int daylight = 1;
5:
6: int dmo[12]
7: = {
8: 0,31,59,90,120,151,181,212,243,273,304,334
9: };
10: double
11: dsrc(d, ifa, i)
12: double d;
13: double ifa[];
14: {
15: double y;
16:
17: do {
18: ifa[i] += 1.;
19: y = convdate(ifa);
20: ddd(d, y, ifa, '>');
21: } while(d >= y);
22: do {
23: ifa[i] -= 1.;
24: y = convdate(ifa);
25: ddd(d, y, ifa, '<');
26: } while(d < y);
27: return(d - y);
28: }
29:
30: ddd(d, y, ifa, ch)
31: double d, y, ifa[];
32: {
33:
34: }
35:
36: dtsetup(d, ifa)
37: double d;
38: double ifa[];
39: {
40:
41: if(flags & KITCH) {
42: d -= timezone/24.;
43: bdtsetup(d, ifa);
44: if(lastsun(ifa, 4))
45: return;
46: if(!lastsun(ifa, 10))
47: return;
48: d += 1./24.;
49: }
50: bdtsetup(d, ifa);
51: }
52:
53: lastsun(ifa, m)
54: double ifa[];
55: {
56:
57: if(ifa[1] < m)
58: return(1);
59: if(ifa[1] > m)
60: return(0);
61: if(ifa[2] < 24)
62: return(1);
63: return(0); /* fix up later */
64: }
65:
66: bdtsetup(d, ifa)
67: double ifa[];
68: double d;
69: {
70: double t;
71:
72: ifa[0] = floor(1900. + d/365.2425);
73: ifa[1] = 1.;
74: ifa[2] = 1.;
75: ifa[3] = 0.;
76: ifa[4] = 0.;
77: ifa[1] = floor(1. + dsrc(d, ifa, 0)/30.);
78: ifa[2] = floor(1. + dsrc(d, ifa, 1));
79: dsrc(d, ifa, 2);
80:
81: d -= .5;
82: t = (d - floor(d))*24.;
83: ifa[3] = floor(t);
84: ifa[4] = (t-ifa[3]) * 60.;
85: }
86:
87: pdate(d)
88: double d;
89: {
90: double ifa[5];
91:
92: dtsetup(d, ifa);
93: printf("%.0f %.0f %.0f", ifa[0], ifa[1], ifa[2]);
94: }
95:
96: ptime(d)
97: double d;
98: {
99: double ifa[5];
100:
101: dtsetup(d, ifa);
102: printf("%.0f:%.2f", ifa[3], ifa[4]);
103: }
104:
105: prlat()
106: {
107: /*
108: printf("%.4f N. %.4f W. %.0f m. above MSL\n", nlat, wlong, elev);
109: */
110: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.