Write a C program to calculate age in years, months and days.
#include <time.h>
/* checks whether the given input is leap year feb or not */
int leapYearFeb(int year, int mon) {
int flag = 0;
if (year % 100 == 0) {
if (year % 400 == 0) {
if (mon == 2) {
flag = 1;
}
}
} else if (year % 4 == 0) {
if (mon == 2) {
flag = 1;
}
}
return (flag);
}
int main() {
/* days in months */
int daysInMon[] = {31, 28, 31, 30, 31, 30,
31, 31, 30, 31, 30, 31};
int days, month, year;
char dob[100];
time_t ts;
struct tm *ct;
/* get the date of birth from the user */
printf("Enter your days of birth:");
fgets(dob, 100, stdin);
sscanf(dob, "%d/%d/%d", &days, &month, &year);
ts = time(NULL);
ct = localtime(&ts);
/* scan the year, month and year from the input string */
printf("Current Date: %d/%d/%d\n",
ct->tm_mday, ct->tm_mon + 1, ct->tm_year + 1900);
days = daysInMon[month - 1] - days + 1;
/* checking whether month is leap year feb - 29 days*/
if (leapYearFeb(year, month)) {
days = days + 1;
}
/* calculating the no of days, years and months */
days = days + ct->tm_mday;
month = (12 - month) + (ct->tm_mon);
year = (ct->tm_year + 1900) - year - 1;
/* checking for leap year feb - 29 days */
if (leapYearFeb((ct->tm_year + 1900), (ct->tm_mon + 1))) {
if (days >= (daysInMon[ct->tm_mon] + 1)) {
days = days - (daysInMon[ct->tm_mon] + 1);
month = month + 1;
}
} else if (days >= daysInMon[ct->tm_mon]) {
days = days - (daysInMon[ct->tm_mon]);
month = month + 1;
}
if (month >= 12) {
year = year + 1;
month = month - 12;
}
/* print the result */
printf("Age: %d year %d months and %d days\n", year, month, days);
return 0;
}
Output:
jp@jp-VirtualBox:~/$ ./a.out
Enter your days of birth:23/6/1993
Current Date: 8/7/2013
Age: 20 year 0 months and 16 days
Enter your days of birth:23/6/1993
Current Date: 8/7/2013
Age: 20 year 0 months and 16 days
See Also:
- c program to print "Hello World"
- c program to print "Hello World" without using semicolon
- c program to swap two numbers
- c program to convert Celsius to Fahrenheit
- c program to convert Fahrenheit to Celsius
- c program to convert time in Hours:Minutes:Seconds to seconds
- c program to find the area of triangle given three sides
- c program to calculate Simple Interest
- c program to print multiplication table from 1 to n
- c program to check whether the given year is leap year or not
- c program to find the size of basic data types
- c program to find the area and circumference of a circle
- c program to find the roots of a quadratic equation
- c program to add two numbers
- c program to swap two numbers without using temporary variable
- c program to check whether the given number N is divisible by M
- c program to add two fractions
- c program to add two numbers without third variable
- c program to convert improper fraction to mixed fraction
- c program to convert centimeters to inches and feet
- c program to convert feet to inches
- c program to convert days into months and days
- c program to convert kilometers to miles, meters and feet
- c program to convert kilometer per hour to meter per second
- c program to convert kilograms to pounds and grams
- c program to convert minutes into hours
- c program to convert time in seconds to hours, minutes and seconds
- c program to convert hours, minutes to seconds
- c program to convert meter to feet and centimeters
- c program to convert plain to cipher text and cipher to plain text
- c program to convert pounds to kilograms
- c program to convert radians to degrees
- c program to convert year to roman equivalent
- c program to calculate compound interest
- c program to calculate power of a number
- c program to calculate factorial
- c program to find the area & perimeter of a circle, triangle, square and rectangle
- c program to calculate age in years, months and days
- c program to find absolute value of a given number
- c program to calculate age from date of birth
- c program to calculate body mass index
- c program to calculate distance between two points
- c program to calculate Greatest Common Divisor(GCD)
- c program to calculate Highest Common Factor(HCF)
- c program to calculate Least Common Multiple(LCM)
- c program to simplify the given fraction using GCF
- c program to calculate Gross and net salary of an employee
- c program to calculate Grades
- c program to calculate GPA
- c program to calculate income tax
- c program to calculate modulus
- c program to implement digital clock
- c program to calculate profit and loss
- c program to calculate percentage
- c program to calculate PI, resistance and power
- c program to calculate square root and square of a number
- c program to calculate volume of a cylinder and sphere
- c program to calculate weighted arithmetic mean
- c program to calculate x power y
- c program to check whether a date is valid or not
- c program to convert days into years, months and weeks
- c program to print date and sleep for a given time
- c program to clear screen and authenticate user
- c program to calculate generic root of any number
- c program to find largest digit of a number
- c program to generate multiplication table for the given number
- c program to convert decimal to binary and count the number of ones and zeros
- c program to round a number
- c program to guess a random number
- c program to implement ceaser cipher
- c program to swap nibble in a byte
- c program to find slope
- c program to calculate nCr and nPr
- c program to print even, odd and prime factors of a given number
- c program to print the four digit numbers whose sum of squares of first half and second half of the number equals the same number
- c program to check whether a given number is magic number or not
- c program to calculate correlation coefficient
thaxn
ReplyDelete