-1

Hi every one. it is my solution. if it is false, reply. using Turbo C

#include<iostream.h>
#include<stdio.h>
#include<conio.h>
struct Date
       {
	    int y;
	    int m;
	    int d;
	    void subdates(Date, Date);
	    long int  calculate_date( Date);
	    long int setvalue(int, int , int);
	   
       };
       Date t;
void main()
{ clrscr();
    Date e,d;
    cout<<endl<<"first year: ";
    cin>>e.y;
    cout<<"first month: ";
    cin>>e.m;
    cout<<"first day: ";
    cin>>e.d;
     d.setvalue(1989,5,18);
    t.subdates(e,d);
    getch();
   }
  void Date::subdates(Date e, Date d)
  {
   long int dd, cc, diff;
   dd=calculate_date(e);
   cc=calculate_date(d);
   diff=dd-cc;

   cout<< "Zoruu: "<<diff<<endl<<dd;
  }

   long int Date::setvalue(int y1=1, int m1=1, int d1=1)
   {
    y=y1;
    m=m1;
    d=d1;
   }

   long int Date::  calculate_date(Date d)
   {long  int z=0,a=0,i;
   if(d.y==1)
   {  z=0;
     switch(d.m)
      {
       case 1: a=0; break;
       case 2: a=31; break;
       case 3: a=59; break;
       case 4: a=90; break;
       case 5: a=120; break;
       case 6: a=151; break;
       case 7: a=181; break;
       case 8: a=212; break;
       case 9: a=243; break;
       case 10: a=273; break;
       case 11: a=304; break;
       case 12: a=334; break;

      }
   }
   else  {

	      for(i=2; i<d.y; i++)
		  {

		       if(i%400==0)
			  {
				  z=z+366;
			  }
		       else{
			    if(i%100==0)
			       {
				  z=z+365;
			       }
			    else{
				 if(i%4==0)
				   {
				      z=z+366;
				   }
				 else z=z+365;
				 }
			    }
		  }
	     switch(d.m)
	     {
		      case 1: a=0; break;
		      case 2: a=31;
		      case 3: if(d.y%400==0)
				{
				 a=60;
				}
			     else {
				  if(d.y%100==0)
				     {
				      a=59;
				     }
				 else {
				       if(d.y%4==0)
					 {
					   a=60;
					 }
				       else a=59;

				      }
				  }; break;
		      case 4: if(d.y%400==0)
				{
				 a=91;
				}
			     else {
				  if(d.y%100==0)
				     {
				      a=90;
				     }
				 else {
				       if(d.y%4==0)
					 {
					   a=91;
					 }
				       else a=90;

				      }
				  }; break;
		      case 5:  if(d.y%400==0)
				{
				 a=121;
				}
			     else {
				  if(d.y%100==0)
				     {
				      a=120;
				     }
				 else {
				       if(d.y%4==0)
					 {
					   a=121;
					 }
				       else a=120;

				      }
				  }; break;
		      case 6: if(d.y%400==0)
				{
				 a=152;
				}
			     else {
				  if(d.y%100==0)
				     {
				      a=151;
				     }
				 else {
				       if(d.y%4==0)
					 {
					   a=152;
					 }
				       else a=151;

				      }
				  }; break;
		      case 7: if(d.y%400==0)
				{
				 a=182;
				}
			     else {
				  if(d.y%100==0)
				     {
				      a=181;
				     }
				 else {
				       if(d.y%4==0)
					 {
					   a=182;
					 }
				       else a=181;

				      }
				  }; break;
		      case 8: if(d.y%400==0)
				{
				 a=213;
				}
			     else {
				  if(d.y%100==0)
				     {
				     a=212;
				     }
				 else {
				       if(d.y%4==0)
					 {
					   a=213;
					 }
				       else a=212;

				      }
				  }; break;
		      case 9: if(d.y%400==0)
				{
				 a=244;
				}
			     else {
				  if(d.y%100==0)
				     {
				      a=243;
				     }
				 else {
				       if(d.y%4==0)
					 {
					   a=244;
					 }
				       else a=243;

				      }
				  }; break;
		      case 10: if(d.y%400==0)
				{
				 a=274;
				}
			     else {
				  if(d.y%100==0)
				     {
				      a=273;
				     }
				 else {
				       if(d.y%4==0)
					 {
					   a=274;
					 }
				       else a=273;

				      }
				  }; break;
		      case 11: if(d.y%400==0)
				{
				 a=305;
				}
			     else {
				  if(d.y%100==0)
				     {
				      a=304;
				     }
				 else {
				       if(d.y%4==0)
					 {
					   a=305;
					 }
				       else a=304;

				      }
				  }; break;
		      case 12: if(d.y%400==0)
				{
				 a=335;
				}
			     else {
				  if(d.y%100==0)
				     {
				      a=334;
				     }
				 else {
				       if(d.y%4==0)
					 {
					   a=335;
					 }
				       else a=334;

				      }
				  }; break;
		      default: cout<<"error"<<endl;
	     }
	 }
z= z+a+d.d;
return z;
}

Edited by Nick Evan: Added code-tags

3
Contributors
4
Replies
5
Views
7 Years
Discussion Span
Last Post by Dave Sinkula
0

Hi every one. it is my solution. if it is false, reply. using Turbo C

Pretty ugly, and it doesn't need to be nonstandard. Was this an assignment to do this without using the standard library?

This article has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.