testudunits.c
00001 #include <math.h>
00002 #include <stdio.h>
00003 #include <stdlib.h>
00004 #include <udunits.h>
00005
00006 int main(int argc, char *argv[])
00007 {
00008 utUnit dataunits;
00009 double newmonth=2.0;
00010 int year, month, day, hour, minute;
00011 float second;
00012 static char *months[12] = { "Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"};
00013 char *units = "months since 1975-11-01 00:00:00.0";
00014
00015 if(argc==2)
00016 newmonth = (double)atof(argv[1]);
00017
00018 utInit(NULL);
00019 if(utScan(units,&dataunits) != 0)
00020 {
00021 printf("internal error: udu_fmt_time can't parse data unit string!\n" );
00022 printf("problematic units: \"%s\"\n", units );
00023 exit( -1 );
00024 }
00025
00026 if(utCalendar( newmonth, &dataunits, &year, &month, &day, &hour, &minute, &second ) != 0)
00027 {
00028 printf("internal error: udu_fmt_time can't convert to calendar value!\n");
00029 printf("units: >%s<\n", units );
00030 exit( -1 );
00031 }
00032
00033 printf("month: %d, %s-%04d\n", month,months[month-1], year );
00034
00035 (void) utTerm();
00036
00037 return 0;
00038 }