C Program k1: newdate, incdatr
/* testing incdatr and newdate */
#include <stdio.h>
#include <rpnmacros.h>
extern incdatr(); /* rmnlib.a */
extern newdate(); /* rmnlib.a */
void chdate(int e,int t,int p,int *v,int *h);
void main(int argc, char **argv)
{
int i, j, k, l;
int date1, date2, tim1, tim2, prev;
date1 = 19980101;
tim1 = 0;
prev = 0-24;
printf("AVANT chdate: prev=%d,date1=%d,tim1=%d\n",prev,date1,tim1);
chdate( date1, tim1, prev, &date2, &tim2 );
printf("APRES chdate: prev=%d,date2=%d,tim2=%d\n",prev,date2,tim2 );
printf("Salut, a la prochaine.\n");
}
/* function - chdate
* given a date(dat1), time (tim1), and decrement (-nhours)
* in hours, compute resulting date and hour
*/
void chdate( int dat1, int tim1, int nhours, int *dat2, int *tim2 )
{
int estamp, vstamp;
int cod, adat, atim;
double inc;
cod = 3;
inc = (double) nhours; /* change to real*8 */
f77name(newdate)( &estamp,&dat1,&tim1,&cod); /* printable to CMCstamp */
printf("newdate estamp=%d,dat1=%d,tim1=%d,cod=%d\n",estamp,dat1,tim1,cod);
f77name(incdatr)( &vstamp,&estamp, &inc ); /* decrement by nhours */
printf("incdatr vstamp=%d,estamp=%d, inc=%f\n",vstamp,estamp,inc);
cod = -3;
f77name(newdate)( &vstamp,&adat,&atim,&cod); /* CMCstamp to printable */
printf("newdate vstamp=%d,adat=%d,atim=%d\n",vstamp,adat,atim);
*tim2 = atim;
*dat2 = adat;
}