Annotation of researchv10no/cmd/sky/pdate.c, revision 1.1.1.1

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: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.