Subversion Repositories planix.SVN

Rev

Blame | Last modification | View Log | RSS feed

#include "astro.h"

void
output(char *s, Obj1 *p)
{

        if(s == 0)
                print(" SAO %5ld", sao);
        else
                print("%10s", s);
        print(" %R %D %9.4f %9.4f %9.4f",
                p->ra, p->decl2, p->az, p->el, p->semi2);
        if(s == osun.name || s == omoon.name)
                print(" %7.4f", p->mag);
        print("\n");
}

int
Rconv(Fmt *f)
{
        double v;
        int h, m, c;

        v = va_arg(f->args, double);
        v = fmod(v*12/pi, 24);          /* now hours */
        h = floor(v);
        v = fmod((v-h)*60, 60);         /* now leftover minutes */
        m = floor(v);
        v = fmod((v-m)*60, 60);         /* now leftover seconds */
        c = floor(v);
        return fmtprint(f, "%2dh%.2dm%.2ds", h, m, c);
}

int
Dconv(Fmt *f1)
{
        double v;
        int h, m, c, f;

        v = va_arg(f1->args, double);
        v = fmod(v/radian, 360);        /* now degrees */
        f = 0;
        if(v > 180) {
                v = 360 - v;
                f = 1;
        }
        h = floor(v);
        v = fmod((v-h)*60, 60);         /* now leftover minutes */
        m = floor(v);
        v = fmod((v-m)*60, 60);         /* now leftover seconds */
        c = floor(v);
        return fmtprint(f1, "%c%.2d°%.2d'%.2d\"", "+-"[f], h, m, c);
}