If you are learning C programming, you might have encountered some problems that require you to convert a given number of days into years, weeks and days. For example, how many years, weeks and days are there in 1000 days? How about 3650 days?

In this program, I will show you **how to write a simple C program that can perform this conversion for any number of days.** You will also learn some basic concepts of C programming, such as variables, data types, operators, input/output and comments.

#### C program

**To convert days into years, weeks and days, we need to follow these steps:**

- Declare four integer variables: 'days', 'years', 'weeks' and 'rem'.
- Ask the user to enter the number of days and store it in the variable 'days'.
- Divide the number of days by 365 to get the number of years and store it in the variable 'years'.
- Find the remainder of the division by 365 to get the remaining days and store it in the variable 'rem'.
- Divide the remaining days by 7 to get the number of weeks and store it in the variable 'weeks'.
- Find the remainder of the division by 7 to get the remaining days and store it in the variable 'rem'.
- the result in the format: 'days' days = 'years' years, 'weeks' weeks and 'rem' days.

**Here is the complete code:**

#include <stdio.h>

int main()

{

int days, years, weeks, rem;

printf("Enter the number of days: ");

scanf("%d", &days);

years = days / 365; // calculate the number of years

rem = days % 365; // calculate the remaining days

weeks = rem / 7; // calculate the number of weeks

rem = rem % 7; // calculate the remaining days

printf("%d days = %d years, %d weeks and %d days\n", days, years, weeks, rem);

return 0;

}

#### Explanation

Let's go through each line of code and understand what it does.

- The first line '#include <stdio.h>' is a preprocessor directive that tells the compiler to include the standard input/output header file. This file contains some functions that we will use later in our program, such as 'printf' and 'scanf'.
- The second line 'int main()' is the main function of our program. Every C program must have a main function where the execution starts.
- The third line '{' marks the beginning of the main function body.
- The fourth line 'int days, years, weeks, rem;' declares four integer variables: 'days', 'years', 'weeks' and 're'. An integer variable can store a whole number, such as 1, 2 or 1000. We use these variables to store the input and output values of our program.
- The fifth line 'printf("Enter the number of days: ");' uses the 'printf' function to print a message on the screen. The message is enclosed in double quotes and ends with a semicolon. The message asks the user to enter the number of days.
- The sixth line 'scanf("%d", &days)' uses the 'scanf' function to read an integer value from the user and store it in the variable 'days'. The '%d' is a format specifier that tells the function what type of value to expect. The '&' is an operator that gives the address of a variable. The function needs this address to store the value in that variable. The semicolon marks the end of a statement.
- The seventh line 'years = days / 365;' calculates the number of years by dividing the number of days by 365. The '/' is an operator that performs integer division. It discards any fractional part of the result. For example, 1000 / 365 gives 2 as an integer result. The '=' is an operator that assigns a value to a variable. It stores the result of the division in the variable 'years'.
- The eighth line 'rem = days % 365;' calculates the remaining days by finding the remainder of the division by 365. The '%' is an operator that performs modulo operation. It gives the remainder after the division. For example, 1000 % 365 gives 270 as a remainder. The result is stored in the variable 'rem'.
- The ninth line 'weeks = rem / 7;' calculates the number of weeks by dividing the remaining days by 7. The result is stored in the variable 'weeks'.
- The tenth line 'rem = rem % 7;' calculates the remaining days by finding the remainder of the division by 7. The result is stored in the variable 'rem'.
- The eleventh line 'printf("%d days = %d years, %d weeks and %d days\n, days, years, weeks, rem);' uses the 'printf' function to print the result on the screen. The function takes a format string and a list of values as arguments. The format string contains some placeholders that are replaced by the values in the list. For example, the first '%d' is replaced by the value of 'days', the second '%d' is replaced by the value of 'years', and so on. The '\n' is a special character that represents a new line. It moves the cursor to the next line after printing.
- The twelfth line 'return 0;' ends the main function and returns a value of 0 to indicate that the program ran successfully.
- The thirteenth line '}' marks the end of the main function body.

#### Output

Here are some sample inputs and outputs of the program:

Enter the number of days:10001000 days = 2 years, 39 weeks and 4 days

Enter the number of days:36503650 days = 10 years, 0 weeks and 0 days

Enter the number of days:11 days = 0 years, 0 weeks and 1 days

#### Conclusion

In this program, you learned **how to write a C program that can convert any number of days into years, weeks and days. **You also learned some basic concepts of C programming, such as variables, data types, operators, input/output and comments.

I hope you found this blog post useful and interesting. If you have any questions or feedback, please leave a comment below. Thank you for reading!

**We love your feedback and invite you to comment on our articles, exercises, examples, quizzes and others. Your feedback helps us make our content awesome and serve you better. Please leave a comment and tell us what you think. How did our content help you learn something new? Thank you for being a part of our community!**