#include <stdio.h>
#include <stdlib.h>
/* http://a...content-available-to-author-only...y.mil/data/docs/JulianDate.php */
/* http://c...content-available-to-author-only...a.com/wiki/Julian_day_number */
double jd( int m, int d, int y ) {
	y += 8000;
	if ( m < 3 ) { y--; m += 12; }
	return y*365.0 + (y/4) - (y/100) + (y/400) + (m*153+3)/5 + d - 1200913.5;
}
double mjd( int m, int d, int y ) { return jd( m, d, y ) - 2400000.5; }
int leap( int year ) {
    return year % 4 == 0 && ( year % 100 != 0 || year % 400 == 0 );
}
int invalid( int month, int day, int year ) {
    static const int days[]= { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
    if ( month < 1 || month > 12 || day < 1 ) return 1;
    if ( (month != 2 || !leap( year )) && day > days[month-1] ) return 1;
    return day > 29;
}
int main( void ) {
    int d1, m1, y1, d2, m2, y2;
    char temp, buf[200];
    for ( ; ; ) {
        for ( ; ; ) {
            printf( "\nEnter first date in 'mm/dd/yyyy' format: " );
            fgets( buf, sizeof( buf ), stdin );
            if ( sscanf( buf, "%d%c%d%c%d", &m1, &temp, &d1, &temp, &y1 ) != 5 ) exit( 0 );
            if ( !invalid( m1, d1, y1 ) ) break;
            printf( "Invalid input!!!\n" );
        }
        for ( ; ; ) {
            printf( "\nEnter second date in 'mm/dd/yyyy' format: " );
            fgets( buf, sizeof( buf ), stdin );
            if ( sscanf( buf, "%d%c%d%c%d", &m2, &temp, &d2, &temp, &y2 ) != 5 ) exit( 0 );
            if ( !invalid( m2, d2, y2 ) ) break;
            printf( "Invalid input!!!\n" );
        }
        printf( "\n%.0lf\n", mjd( m2, d2, y2 ) - mjd( m1, d1, y1 ) );
    }
    return 0;
}
