www.pudn.com > 日期、菜单、字符串的C函数.rar > PAUSE.C


/*                             *** pause.c ***                       */ 
/*                                                                   */ 
/* IBM-PC microsoft "C" under PC-DOS                                 */ 
/*                                                                   */ 
/* Function to cause a program to appear to pause for a given period */ 
/* time.  Uses the system clock for timing.  Accurate to 1/100's of  */ 
/* a second.                                                         */ 
/*                                                                   */ 
/* Written by L. Cuthbertson, May 1984.                              */ 
/*                                                                   */ 
/*********************************************************************/ 
/*                                                                   */ 
 
pause(seconds) 
float seconds;			/* number of seconds to pause */ 
{ 
	int ih,im,is,iths; 
	long current,offset,diff; 
 
	/* determine the current time */ 
	dostime(&ih,&im,&is,&iths); 
 
	/* calculate the current time in 1/100's of a second */ 
	offset = (ih*360000) + (im*6000) + (is*100) + iths; 
	current = offset; 
 
	/* calculate the number of 1/100's of a second to pause */ 
	diff = seconds*100; 
	if (diff > 8640000) {		/* maximum of 1 day pause */ 
		return(-1); 
	} 
 
	/* keep on polling the clock until difference has elapsed */ 
	while ((current-offset) < diff) { 
		dostime(&ih,&im,&is,&iths); 
		current = (ih*360000) + (im*6000) + (is*100) + iths; 
		if (current < offset) {		/* spans midnight */ 
			current += 8640000; 
		} 
	} 
 
	/* done */ 
	return(0); 
 
}