]> git.lizzy.rs Git - plan9front.git/blob - sys/src/cmd/astro/output.c
awk: make empty FS unicodely-correct.
[plan9front.git] / sys / src / cmd / astro / output.c
1 #include "astro.h"
2
3 void
4 output(char *s, Obj1 *p)
5 {
6
7         if(s == 0)
8                 print(" SAO %5ld", sao);
9         else
10                 print("%10s", s);
11         print(" %R %D %9.4f %9.4f %9.4f",
12                 p->ra, p->decl2, p->az, p->el, p->semi2);
13         if(s == osun.name || s == omoon.name)
14                 print(" %7.4f", p->mag);
15         print("\n");
16 }
17
18 int
19 Rconv(Fmt *f)
20 {
21         double v;
22         int h, m, c;
23
24         v = va_arg(f->args, double);
25         v = fmod(v*12/pi, 24);          /* now hours */
26         h = floor(v);
27         v = fmod((v-h)*60, 60);         /* now leftover minutes */
28         m = floor(v);
29         v = fmod((v-m)*60, 60);         /* now leftover seconds */
30         c = floor(v);
31         return fmtprint(f, "%2dh%.2dm%.2ds", h, m, c);
32 }
33
34 int
35 Dconv(Fmt *f1)
36 {
37         double v;
38         int h, m, c, f;
39
40         v = va_arg(f1->args, double);
41         v = fmod(v/radian, 360);        /* now degrees */
42         f = 0;
43         if(v > 180) {
44                 v = 360 - v;
45                 f = 1;
46         }
47         h = floor(v);
48         v = fmod((v-h)*60, 60);         /* now leftover minutes */
49         m = floor(v);
50         v = fmod((v-m)*60, 60);         /* now leftover seconds */
51         c = floor(v);
52         return fmtprint(f1, "%c%.2d°%.2d'%.2d\"", "+-"[f], h, m, c);
53 }