xref: /plan9-contrib/sys/src/cmd/astro/output.c (revision 9a747e4fd48b9f4522c70c07e8f882a15030f964)
13e12c5d1SDavid du Colombier #include "astro.h"
23e12c5d1SDavid du Colombier 
33e12c5d1SDavid du Colombier void
output(char * s,Obj1 * p)43e12c5d1SDavid du Colombier output(char *s, Obj1 *p)
53e12c5d1SDavid du Colombier {
63e12c5d1SDavid du Colombier 
73e12c5d1SDavid du Colombier 	if(s == 0)
83e12c5d1SDavid du Colombier 		print(" SAO %5ld", sao);
93e12c5d1SDavid du Colombier 	else
103e12c5d1SDavid du Colombier 		print("%10s", s);
113e12c5d1SDavid du Colombier 	print(" %R %D %9.4f %9.4f %9.4f",
123e12c5d1SDavid du Colombier 		p->ra, p->decl2, p->az, p->el, p->semi2);
133e12c5d1SDavid du Colombier 	if(s == osun.name || s == omoon.name)
143e12c5d1SDavid du Colombier 		print(" %7.4f", p->mag);
153e12c5d1SDavid du Colombier 	print("\n");
163e12c5d1SDavid du Colombier }
173e12c5d1SDavid du Colombier 
183e12c5d1SDavid du Colombier int
Rconv(Fmt * f)19*9a747e4fSDavid du Colombier Rconv(Fmt *f)
203e12c5d1SDavid du Colombier {
213e12c5d1SDavid du Colombier 	double v;
223e12c5d1SDavid du Colombier 	int h, m, c;
233e12c5d1SDavid du Colombier 
24*9a747e4fSDavid du Colombier 	v = va_arg(f->args, double);
253e12c5d1SDavid du Colombier 	v = fmod(v*12/pi, 24);		/* now hours */
263e12c5d1SDavid du Colombier 	h = floor(v);
273e12c5d1SDavid du Colombier 	v = fmod((v-h)*60, 60);		/* now leftover minutes */
283e12c5d1SDavid du Colombier 	m = floor(v);
293e12c5d1SDavid du Colombier 	v = fmod((v-m)*60, 60);		/* now leftover seconds */
303e12c5d1SDavid du Colombier 	c = floor(v);
31*9a747e4fSDavid du Colombier 	return fmtprint(f, "%2dh%.2dm%.2ds", h, m, c);
323e12c5d1SDavid du Colombier }
333e12c5d1SDavid du Colombier 
343e12c5d1SDavid du Colombier int
Dconv(Fmt * f1)35*9a747e4fSDavid du Colombier Dconv(Fmt *f1)
363e12c5d1SDavid du Colombier {
373e12c5d1SDavid du Colombier 	double v;
383e12c5d1SDavid du Colombier 	int h, m, c, f;
393e12c5d1SDavid du Colombier 
40*9a747e4fSDavid du Colombier 	v = va_arg(f1->args, double);
413e12c5d1SDavid du Colombier 	v = fmod(v/radian, 360);	/* now degrees */
423e12c5d1SDavid du Colombier 	f = 0;
433e12c5d1SDavid du Colombier 	if(v > 180) {
443e12c5d1SDavid du Colombier 		v = 360 - v;
453e12c5d1SDavid du Colombier 		f = 1;
463e12c5d1SDavid du Colombier 	}
473e12c5d1SDavid du Colombier 	h = floor(v);
483e12c5d1SDavid du Colombier 	v = fmod((v-h)*60, 60);		/* now leftover minutes */
493e12c5d1SDavid du Colombier 	m = floor(v);
503e12c5d1SDavid du Colombier 	v = fmod((v-m)*60, 60);		/* now leftover seconds */
513e12c5d1SDavid du Colombier 	c = floor(v);
52*9a747e4fSDavid du Colombier 	return fmtprint(f1, "%c%.2d°%.2d'%.2d\"", "+-"[f], h, m, c);
533e12c5d1SDavid du Colombier }
54