1
0
Fork 0
flightgear/Simulator/Time/ttest.c
1999-04-05 21:32:32 +00:00

86 lines
1.9 KiB
C

#include <math.h>
#include <stdio.h>
#include <time.h>
int main() {
time_t cur_time, start, start_gmt, now, now_gmt;
struct tm *gmt, mt;
long int offset;
double diff, part, days, hours, lon, lst;
int i;
cur_time = time(NULL);
printf("Time = %ld\n", cur_time);
gmt = gmtime(&cur_time);
printf("GMT = %d/%d/%2d %d:%02d:%02d\n",
gmt->tm_mon, gmt->tm_mday, gmt->tm_year,
gmt->tm_hour, gmt->tm_min, gmt->tm_sec);
mt.tm_mon = 2;
mt.tm_mday = 21;
mt.tm_year = 98;
mt.tm_hour = 12;
mt.tm_min = 0;
mt.tm_sec = 0;
start = mktime(&mt);
offset = -(timezone / 3600 - daylight);
printf("Raw time zone offset = %ld\n", timezone);
printf("Daylight Savings = %d\n", daylight);
printf("Local hours from GMT = %d\n", offset);
start_gmt = start - timezone + (daylight * 3600);
printf("March 21 noon (CST) = %ld\n", start);
printf("March 21 noon (GMT) = %ld\n", start_gmt);
for ( i = 0; i < 12; i++ ) {
mt.tm_mon = i;
mt.tm_mday = 21;
mt.tm_year = gmt->tm_year;
mt.tm_hour = 12;
mt.tm_min = 0;
mt.tm_sec = 0;
now = mktime(&mt);
offset = -(timezone / 3600 - daylight);
printf("Raw time zone offset = %ld\n", timezone);
printf("Daylight Savings = %d\n", daylight);
printf("Local hours from GMT = %d\n", offset);
now_gmt = now - timezone + (daylight * 3600);
printf("%d/%d/%d noon (CST) = %ld\n", i+1, 21, 97, now);
printf("%d/%d/%d noon (GMT) = %ld\n", i+1, 21, 97, now_gmt);
diff = (now_gmt - start_gmt) / (3600.0 * 24.0);
printf("Time since 3/21/%2d GMT = %.2f\n", gmt->tm_year, diff);
part = fmod(diff, 1.0);
days = diff - part;
/* hours = gmt->tm_hour + gmt->tm_min/60.0 + gmt->tm_sec/3600.0; */
hours = 12;
lon = -112;
lst = (days + lon)/15.0 + hours - 12;
while ( lst < 0.0 ) {
lst += 24.0;
}
printf("days = %.1f hours = %.2f lon = %.2f lst = %.2f\n",
days, hours, lon, lst);
}
return(0);
}