درخواست راهنمایی در حل مشکل یک پروژه
سلام دوستان
من استادمون یه بروژه برای پایان ترم بهم داده که به این صورت است: برنامه ای به زبان c بنویسید که سال تولد کاربر را بگیرد و به ما بگوید که کاربر چند سال و چند ماه و چند روز و چند ساعت عمر دارد.
من تلاش خودمو کردم این برنامه رو به این صورت نوشتم
کد:
#include <stdio.h>
#include <time.h>
#include <math.h>
int main ()
{
time_t timer;
struct tm y2k;
double seconds=0,min=0,hour=0,day=0,month=0,year=0;
double seconds1=0,min1=0,hour1=0,day1=0,month1=0,year1=0;
double seconds2=0,min2=0,hour2=0,day2=0,month2=0,year2=0;
int y,m;
printf("Enter year of brithday (example : from 1970 to 2014) : "); /* hatman sale tavallod ra be miladi vared konid */
scanf("%d",&y); /* gereftane sale tavallod be miladi */
m=y-1900;
time(&timer); /* zamane system ra migirad */
y2k.tm_hour = 0; y2k.tm_min = 0; y2k.tm_sec = 0;
y2k.tm_year = m; y2k.tm_mon = 0; y2k.tm_mday = 1;
seconds = difftime(timer,mktime(&y2k)); /* tafazole sale tavallod ba zamane system */
seconds1=fmod(seconds,60); /* baghimandeye sanie */
seconds2=seconds-seconds1; /* tafazole sanie va sanieye baghimande */
min=seconds2/60; /* tabdile sani be daghighe */
min1=fmod(min,60); /* baghimandeye daghighe */
min2=min-min1; /* tafazole daghighe va daghigheye baghimande */
hour=min2/60; /* tabdile daghighe be saat */
hour1=fmod(hour,24); /* baghimandeye saat */
hour2=hour-hour1; /* tafazole saat va saate baghimande */
day=hour2/24; /* tabdile saat be rouz */
day1=fmod(day,30); /* baghimandeye rouz */
day2=day-day1; /* tafazole rouz va rouze baghimande */
month=day2/30; /* tabdile rouz be mah */
month1=fmod(month,12); /* baghimandeye mah */
month2=month-month1; /* tafazole mah va mahe baghimande */
year=month2/12; /* tabdile mah be sal */
printf ("\nsene shoma %.f sal %.f mah %.f rouz %.f saat %.f daghighe %.f sanie mibashad", year,month1,day1,hour1,min1,seconds1);
return 0;
}
این برنامه ثانیه و دقیقه و ساعت و سال عمر فرد را درست نشان میدهد ولی ماه و روز اون هر دفعه یه چیزی میاد و غلطه
میخواستم ببینم شما دوستان پیشنهادی برای تغییر در دستورات ندارید؟ ایا دستورات ساده تری هم هست که بجای این ها ازش استفاده کنم؟
لطفا کمکم کنید ... ممنون