1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-12-19 03:52:17 +00:00
freebsd-ports/misc/astrolog/files/patch-general.c

48 lines
1.2 KiB
C

--- general.c.orig 2002-04-27 22:33:57.000000000 +0400
+++ general.c 2012-02-26 11:13:09.000000000 +0400
@@ -900,14 +900,32 @@
/* Return a string containing the given time zone, given as a real value */
/* having the hours before GMT in the integer part and minutes fractionally. */
+/* Seconds are printed when needed. */
byte *SzZone(zon)
real zon;
{
- static byte szZon[7];
+ static byte szZon[10];
+ int hr, min, sec;
+ real rMin;
- sprintf(szZon, "%c%d:%02d", zon > 0.0 ? '-' : '+', (int)RAbs(zon),
- (int)(RFract(RAbs(zon))*100.0+rRound/60.0));
+ hr = NFloor(RAbs(zon));
+ rMin = RFract(RAbs(zon)) * 100.0;
+ min = (int)(rMin + rRound / 600.0);
+ rFractal = RFract(rMin);
+ if (rFractal > rOne)
+ rFractal = rSmall;
+ sec = (int)(60.0*rFractal + rRound);
+ while (min >= 60) {
+ min -= 60;
+ hr++;
+ }
+ while (hr >= 24)
+ hr -= 24;
+ if (sec == 0)
+ sprintf(szZon, "%c%d:%02d", zon > 0.0 ? '-' : '+', hr, min);
+ else
+ sprintf(szZon, "%c%d:%02d:%02d", zon > 0.0 ? '-' : '+', hr, min, sec);
return szZon;
}
@@ -970,7 +988,7 @@
int *mon, *day, *yea;
real *tim, zon;
{
- dword curtimer;
+ time_t curtimer;
int min, sec;
real hr;