Annotation of researchv9/libc/gen/timezone.c, revision 1.1.1.1

1.1       root        1: /*
                      2:  * The arguments are the number of minutes of time
                      3:  * you are westward from Greenwich and whether DST is in effect.
                      4:  * It returns a string
                      5:  * giving the name of the local timezone.
                      6:  *
                      7:  * Sorry, I don't know all the names.
                      8:  */
                      9: 
                     10: static struct zone {
                     11:        int     offset;
                     12:        char    *stdzone;
                     13:        char    *dlzone;
                     14: } zonetab[] = {
                     15:        4*60, "AST", "ADT",             /* Atlantic */
                     16:        5*60, "EST", "EDT",             /* Eastern */
                     17:        6*60, "CST", "CDT",             /* Central */
                     18:        7*60, "MST", "MDT",             /* Mountain */
                     19:        8*60, "PST", "PDT",             /* Pacific */
                     20:        0, "GMT", 0,                    /* Greenwich */
                     21:        -1
                     22: };
                     23: 
                     24: char *timezone(zone, dst)
                     25: {
                     26:        register struct zone *zp;
                     27:        static char czone[10];
                     28:        char *sign;
                     29: 
                     30:        for (zp=zonetab; zp->offset!=-1; zp++)
                     31:                if (zp->offset==zone) {
                     32:                        if (dst && zp->dlzone)
                     33:                                return(zp->dlzone);
                     34:                        if (!dst && zp->stdzone)
                     35:                                return(zp->stdzone);
                     36:                }
                     37:        if (zone<0) {
                     38:                zone = -zone;
                     39:                sign = "+";
                     40:        } else
                     41:                sign = "-";
                     42:        sprintf(czone, "GMT%s%d:%02d", sign, zone/60, zone%60);
                     43:        return(czone);
                     44: }

unix.superglobalmegacorp.com

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