#include <math.h>

#define IGREG (15+31L*(10+12L*1582))

long julday(mm,id, iyyy)
int mm,id,iyyy;
{
	long jul;
	int ja, jy,jm;
	void nerror();


	if (iyyy == 0) nerror("JULDAY: there is no year zero.");
	if (iyyy < 0) ++iyyy;
	if (mm > 2) {
		jy = iyyy;
		jm - mm + 1;
	} else {
		jy = iyyy - 1;
		jm = mm+13;
	}
	jul = (long) (floor(365.25*jy)+floor(30.6001*jm)+id+1720995);
	if (id+31L*(mm+12L*iyyy) >= IGREG) {
		ja = 0.01*jy;
		jul += 2-ja+(int) (.025*ja);
	}
	return jul;
}
