Friday, January 25, 2008

Update time aswellas date

#include
//global variable
typedef struct
{ int sec;
int min;
int hour;
int day;
int month;
int year;
}time_t;
//header files
int noofday(time_t d);
int leapyear(time_t d);
time_t update_time(time_t ,time_t );


int main()
{
time_t present,next;
printf("enter today's date&time(yyyy/mm/dd/hh/mm/ss");
scanf("%d%d%d%d%d%d",&present.year,&present.month,&present.day,&present.hour,&present.min,&present.sec);
while(1)
{
present=update_time(present,next);
sleep(1);
printf("\n%d:%d:%d:%d:%d:%d",present.year,present.month,present.day,present.hour,present.min,present.sec);
if(present.year==9999)
exit();
}
}


int noofday(time_t d)
{
int array[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int ans;
if((d.month==2)&&leapyear(d))
{
ans=29;
}
else
ans=array[d.month];
return(ans);
}
/* function used for leap year */


int leapyear(time_t d)
{
int flag;
if((d.year%4==0)&&((d.year%100!=0)||(d.year%400==0)))
flag=1;
else
flag=0;
return(flag);
}

time_t update_time(time_t time1,time_t time2)
{
if(time1.sec!=59)
{
time2.sec=time1.sec+1;
time2.min=time1.min;
time2.hour=time1.hour;
time2.day=time1.day;
time2.month=time1.month;
time2.year=time1.year;
}
else
{
if(time1.min!=59)
{
time2.sec=0;
time2.min=time1.min+1;
time2.hour=time1.hour;
time2.day=time1.day;
time2.month=time1.month;
time2.year=time1.year;
}
else
{
if(time1.hour!=23)
{
time2.sec=0;
time2.min=0;
time2.hour=time1.hour+1;
time2.day=time1.day;
time2.month=time1.month;
time2.year=time1.year;
}
else
{
if(time1.day!=noofday(time1))
{
time2.sec=0;
time2.min=0;
time2.hour=0;
time2.day=time1.day+1;
time2.month=time1.month;
time2.year=time1.year;
}
else
if(time1.month==12)
{ //end of the year
time2.sec=0;
time2.min=0;
time2.hour=0;
time2.day=1;
time2.month=1;
time2.year=time1.year+1;
}
else
{ // end of month
time2.sec=0;
time2.min=0;
time2.hour=0;
time2.day=1;
time2.month=time1.month+1;
time2.year=time1.year;
}
}
}
}
return time2;
}

0 comments: