-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathex.9.2.c
54 lines (42 loc) · 981 Bytes
/
ex.9.2.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
// Calculate the number of days between two arbitrary dates
#include <stdio.h>
struct date
{
int month;
int day;
int year;
};
int yearInt (int year, int month)
{
if ( month <= 2 )
return year - 1;
else
return year;
}
int monthInt (int month)
{
if ( month <= 2 )
return month + 13;
else
return month + 1;
}
int dateInt (struct date d)
{
int yearN = 1461 * yearInt (d.year, d.month) / 4;
int monthN = 153 * monthInt (d.month) / 5;
return yearN + monthN + d.day;
}
int main (void)
{
struct date date1, date2;
printf ("Type first date (mm dd yyyy): ");
scanf ("%i %i %i", &date1.month, &date1.day, &date1.year);
printf ("Type second date (mm dd yyyy): ");
scanf ("%i %i %i", &date2.month, &date2.day, &date2.year);
int n1 = dateInt (date1);
int n2 = dateInt (date2);
printf ("There are %i days between %i/%i/%.2i and %i/%i/%.2i\n", n2 - n1,
date1.month, date1.day, date1.year % 100,
date2.month, date2.day, date2.year % 100);
return 0;
}