C Program to calculate the day of year from the date
Last updated on September 24, 2020
The following is a C program to calculate the day of year from the date:
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 55 56 57 58 59 60 61 62 63 64 65 66 67 | /*************************************************
Program to calculate day of year from the date
*
* Enter date (MM/DD/YYYY): 12/30/2006
* Day of year: 364
*
************************************************/
#include<stdio.h> // include stdio.h library
int main(void)
{
int day, mon, year, days_in_feb = 28,
doy; // day of year
printf("Enter date (MM/DD/YYYY): ");
scanf("%d/%d/%d", &mon, &day, &year);
doy = day;
// check for leap year
if( (year % 4 == 0 && year % 100 != 0 ) || (year % 400 == 0) )
{
days_in_feb = 29;
}
switch(mon)
{
case 2:
doy += 31;
break;
case 3:
doy += 31+days_in_feb;
break;
case 4:
doy += 31+days_in_feb+31;
break;
case 5:
doy += 31+days_in_feb+31+30;
break;
case 6:
doy += 31+days_in_feb+31+30+31;
break;
case 7:
doy += 31+days_in_feb+31+30+31+30;
break;
case 8:
doy += 31+days_in_feb+31+30+31+30+31;
break;
case 9:
doy += 31+days_in_feb+31+30+31+30+31+31;
break;
case 10:
doy += 31+days_in_feb+31+30+31+30+31+31+30;
break;
case 11:
doy += 31+days_in_feb+31+30+31+30+31+31+30+31;
break;
case 12:
doy += 31+days_in_feb+31+30+31+30+31+31+30+31+30;
break;
}
printf("Day of year: %d", doy);
return 0; // return 0 to operating system
}
|
Expected Output: 1st run:
1 2 | Enter date (MM/DD/YYYY): 03/05/2000
Day of year: 65
|
2nd run:
1 2 | Enter date (MM/DD/YYYY): 12/25/2018
Day of year: 359
|
How it works #
Day of year is a number between 1 and 365 (or 366, if leap year). For example, 1st Jan is day 1, 5th Feb is day 36 and so on.
To calculate the day of year we simply add days in the given month to the days in the previous months.
Recommended Reading:
- C Program to check whether a year is a leap year
- C Program to print the earlier of the two dates
- C Program to find Prime Numbers
- C Program to find the roots of a Quadratic equation
- C Program to check whether the number is a Palindrome
Load Comments