rendered paste body#include <stdio.h>int main(){int day1, month1, year1, day2, month2, year2, result;int evaluate = 0;char var1, var2, c;/* Define Functions */int verify_date(int day, int month, int year, char var1, char var2); /* Verifys if date input is correct */int february(int year); /* identifys how many days are on February */int difference(int day1, int month1, int year1, int day2, int month2, int year2); /* Calculates the difference between two dates *//* Main Program */ do { fprintf(stderr, "Insert first Date: (e.g. <day>/<month>/<year> or <day>-<month>-<year>)\n"); scanf("%i%c%i%c%i", &day1, &var1, &month1, &var2, &year1); for (c = getchar(); c!= '\n'; c = getchar() ); evaluate = verify_date(day1, month1, year1, var1, var2); } while (!evaluate); do { fprintf(stderr, "Insert second Date: (e.g. <day>/<month>/<year> or <day>-<month>-<year>)\n"); scanf("%i%c%i%c%i", &day2, &var1, &month2, &var2, &year2); for (c = getchar(); c!= '\n'; c = getchar() ); evaluate = verify_date(day2, month2, year2, var1, var2); } while (!evaluate); result = difference(day1, month1, year1, day2, month2, year2); printf("%i\n", result); return 0;/* End of Main Program */}/* VERIFICAR MES DE FEVEREIRO *//* Functions */int verify_date(int day, int month, int year, char var1, char var2) /* Verify if an illegal date is entered */{ int evaluate1, evaluate2, y; if ((var1 == '/' || var1 == '-') && (var2 == '/' || var2 == '-')) { if (month > 0 && month < 13) /* 1 <= month <= 12 */ { if (month == 4 || month == 6 || month == 9 || month == 11) /* Months with 30 days */ { if (day < 1 || day > 30) /* 1 <= day <= 30 */ { fprintf(stderr, "NOT standard output"); evaluate1 = 0; } else evaluate1 = 1; } if (month == 2) /* February, month with 28 days */ { if (year % 4 == 0) y = 29; else y = 28; if (day < 1 || day > y) { fprintf(stderr, "NOT standard output"); evaluate1 = 0; } else evaluate1 = 1; } else /* Months with 31 days */ { if (day < 1 || day > 31) /* 1 <= day <= 31 */ { fprintf(stderr, "NOT standard output"); evaluate1 = 0; } else evaluate1 = 1; } } else { fprintf(stderr, "NOT standard output"); evaluate1 = 0; } if (year > 0 && year < 10000) /* 1 <= year <= 9999 */ evaluate2 = 1; else { fprintf(stderr, "NOT standard output"); evaluate2 = 0; } if (evaluate1 == 1 && evaluate2 == 1) return 1; else return 0; } else return 0;}int difference(int day1, int month1, int year1, int day2, int month2, int year2){ int dif_years, ys, ye, dif_months, ms, me, dif_days, ds, de; /* ys = year_start, ye = year_end, ms = month_start, me = month_end, ds = day_start, de = day_end */ int months[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; int days = 0; int m, y; dif_years = year1 - year2; if (dif_years > 0) { ys = year2; ms = month2; ds = day2; ye = year1; me = month1; de = day1; } if (dif_years < 0) { ys = year1; ms = month1; ds = day1; ye = year2; me = month2; de = day2; } else { dif_months = month1 - month2; if (dif_months > 0) { ys = year2; ms = month2; ds = day2; ye = year1; me = month1; de = day1; } if (dif_months < 0) { ys = year1; ms = month1; ds = day1; ye = year2; me = month2; de = day2; } else { /* dif_months = 0 */ dif_days = day1 - day2; if (dif_days > 0) { ys = year2; ms = month2; ds = day2; ye = year1; me = month1; de = day1; } if (dif_days < 0) { ys = year1; ms = month1; ds = day1; ye = year2; me = month2; de = day2; } else return 0; } } if (dif_years > 0 || dif_years < 0) { months[1] = february(ys); days += months[ms-1] - ds; m = ms; while (m < 12) { days += months[m]; ++m; } y = ys + 1; while (y < ye) { months[1] = february(y); m = 0; while (m < 12) { days += months[m]; ++m; } } months[1] = february(ye); m = 0; while (m < me) { days += months[m]; ++m; } days += de; } else { months[1] = february(ys); days += months[ms-1] - ds; m = ms; while (m < me) { days += months[m]; ++m; } days += de; } if (dif_years > 0 || (dif_years == 0 && dif_months > 0) || (dif_years == 0 && dif_months == 0 && dif_days > 0)) return -days; else return days;}int february(int year){ int root; root = year % 4; if (root == 0) return 29; else return 28;}