C program to convert given number of days in terms of Years, Weeks and Days

In this blog post, we learn how to write a C program to convert days into years weeks and days?. We will write the C Program to Convert Days to Years Weeks and Days. Write a C program to input the number of days from the user and convert it to years, weeks, and days. How to convert days to years, weeks in C programming. Logic to convert days to years, weeks, and days in C program.

Example,

Input: 789
Output : years = 2
         week = 8
         days = 3

Input: 20
Output : years = 0
         week = 2
         days = 6

 

Logic to convert days to years, weeks, and days:

  1. Ask the user to enter the number of days.
  2. Now compute the number of years by dividing the number of days with 365. Here I am not considering the leap year (have 366 days) i.e days / 365 = years.
  3. Now Compute total weeks using the mentioned formula (number_of_days % 365) / 7.
  4. Now Compute remaining days using the mentioned formula (number_of_days % 365) % 7.

 

C program to convert given number of days in terms of Years, Weeks, and Days:

The below program ask the user to enter the number of days. After getting the days from the user program convert it in terms of years, weeks, and days. Here I am ignoring the leap year.

#include <stdio.h>

int main()
{
    int days, years, weeks;

    //Ask user to input number of days
    printf("Enter days: ");
    scanf("%d", &days);

    // Ignoring leap year
    years = (days / 365);
    weeks = (days % 365) / 7;
    days  = (days % 365) %7;

    //Print the result
    printf("YEARS: %d\n", years);
    printf("WEEKS: %d\n", weeks);
    printf("DAYS: %d", days);

    return 0;
}

Output:

Enter days: 669
YEARS: 1
WEEKS: 43
DAYS: 3

 

C program to convert given number of days in terms of Years, Weeks, and Days using the function:

The below program ask the user to enter the number of days. After getting the days from the user called a function name findYearsWeeksDays() to convert the number of days in terms of years, weeks, and remaining days. Here I am also ignoring the leap year.

#include <stdio.h>

#define DAYS_IN_WEEK 7

typedef struct
{
    int years;
    int weeks;
    int remainingDays;
} s_YearsWeekDaysInfo;

// Function to find year,
// week, days
s_YearsWeekDaysInfo findYearsWeeksDays(int number_of_days)
{
    s_YearsWeekDaysInfo yearsWeekDays;

    // Assume that years is
    // of 365 days
    yearsWeekDays.years = number_of_days / 365;
    yearsWeekDays.weeks = (number_of_days % 365) /
                          DAYS_IN_WEEK;
    yearsWeekDays.remainingDays = (number_of_days % 365) %
                                  DAYS_IN_WEEK;

    return yearsWeekDays;
}

int main()
{
    int number_of_days;
    s_YearsWeekDaysInfo yearsWeekDays;


    //Ask user to input number of days
    printf("Enter days: ");
    scanf("%d", &number_of_days);

    //function to convert days in years and weeks
    yearsWeekDays = findYearsWeeksDays(number_of_days);

    printf("YEARS: %d\n", yearsWeekDays.years);
    printf("WEEKS: %d\n", yearsWeekDays.weeks);
    printf("DAYS: %d", yearsWeekDays.remainingDays);

    return 0;
}

 

Output:

Enter days: 785
YEARS: 2
WEEKS: 7
DAYS: 6