Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- int leap_year(int year);
- //checks if a year is leap year or not
- int days_in_month(int month_num);
- //takes month number and returns number of days
- int date_to_days(int date, int month, int year);
- //takes date and calculate number of days from reference date
- int days_to_date(int days);
- //takes days and convert to date format
- int main(){
- int year1, year2, month1, month2, date1, date2, result;
- printf("\nEnter valid date(dd mm yyyy)\nFirst date must be smaller than second date\n");
- printf("Enter first date: ");
- scanf("%d %d %d", &date1, &month1, &year1);
- printf("Enter second date: ");
- scanf("%d %d %d", &date2, &month2, &year2);
- if(date1>31 || date2>31 || month1>12 || month2>12){
- printf("Invalid date");
- }
- else{
- result = date_to_days(date2, month2, year2)-date_to_days(date1, month1, year1);
- printf("total number of days: %d\n", result);
- days_to_date(result);
- }
- return 0;
- }
- int leap_year(int year){
- if(((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)){
- return 1;
- }
- else{
- return 0;
- }
- }
- int days_in_month(int month_num){
- int days=0, year=2018;
- if(month_num==1 ||month_num==3 ||month_num==5 ||month_num==7 ||month_num==8 ||month_num==10 ||month_num==12 ){
- return days+=31;
- }
- else if(month_num==4 ||month_num==6 ||month_num==9 ||month_num==11 ){
- return days+=30;
- }
- else if(month_num==2 && leap_year(year)){
- return days+=29;
- }
- else{
- return days+=28;
- }
- }
- int date_to_days(int date, int month, int year){
- int reference = 1500, result;
- int a=reference, b=(year-1), days=0;
- for(int i = a; i<=b; i++){
- if (leap_year(i)){
- days += 366;
- }
- else{
- days += 365;
- }
- }
- for(int i=1; i<=month; i++){
- days+=days_in_month(i);
- }
- days+=date;
- return days;
- }
- int days_to_date(int days){
- int year=0, month=0, date=0;
- if (days>=365){
- year = days/365;
- days-=year*365;
- }
- if (days>=30){
- month = days/30;
- days-=month*30;
- }
- printf("%d years, %d months, %d days", year, month, days);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement