/***********************************************************************\ * * * DATE.C Copyright (C) 1993 Sequiter Software Inc. * * * \***********************************************************************/ /* See User's Manual, page 154 */ #include "d4all.h" #ifdef __TURBOC__ extern unsigned _stklen = 10000; #endif int valid_date(char *date) { long rc; rc = date4long(date); if(rc < 1) return 0; else return 1; } void how_long_until(int month,int day,char *title) { char today_standard[9],today[25],date[9],*dow; int year,days; long julian_today,julian_date; memset(today_standard,NULL ,sizeof(today_standard)); memset(today,NULL,sizeof(today)); memset(date,NULL,sizeof(date)); date4today(today_standard); date4format(today_standard,today ,"MMM DD/CCYY"); printf("\nToday's date is %s\n",today); julian_today = date4long(today_standard); year = date4year(today_standard); sprintf(date,"%4d%2d%2d",year,month,day); julian_date = date4long(date); if(julian_date < julian_today) { year ++; sprintf(date,"%4d%2d%2d",year,month,day); julian_date = date4long(date); } days = julian_date - julian_today; printf("There are %d days until %s" ,days,title); dow = date4cdow(date); printf("(which is a %s this year)\n",dow); } void main() { char birthdate[80],standard[9]; how_long_until(12,25,"Christmas"); do { printf("\nPlease enter your birthdate"); printf(" in \"DEC 20/1993\" format:"); gets(birthdate); date4init(standard,birthdate,"MMM DD/CCYY"); }while(!valid_date(standard)); how_long_until(date4month(standard) ,date4day(standard) ,"your next birthday"); }