-
این تابع رو چند روز پیش نوشتم اما دیروز در دسترسم نبود الان برات می فرستم : زمان و تاریخ هنگام اجرای برنامه رو به طور دقیق توی خروجی چاپ میکنه
کد:
#include <iostream>
#include <fstream>
#include <ctime>
using namespace std;
int main()
{
int TimeNow=time(0);
int Time_0_2009=1230789600;
TimeNow=TimeNow-Time_0_2009;
int hour=0,min=0,sec=0,Day=1,day=1,month=1,year=2009,roz=86400,sat=3600,daghighe=60;
while(TimeNow>=roz)
{
TimeNow=TimeNow-roz;
day++;
Day++;
if((month==1 || month==3 || month==5 || month==7 || month==8 || month==10 || month==12) && day==32){
month++;
day=1;
}
if((month==4 || month==6 || month==9 || month==11) && day==31){
month++;
day=1;
}
if(year%4==0 && month==2 && day==30){
month++;
day=1;
}
if(year%4!=0 && month==2 && day==29){
month++;
day=1;
}
if(month==13){
year++;
month=1;
day=1;
}
}
while(TimeNow>=sat){
TimeNow=TimeNow-sat;
hour++;
}
while(TimeNow>=daghighe){
TimeNow=TimeNow-daghighe;
min++;
}
while(TimeNow>0){
TimeNow=TimeNow-1;
sec++;
}
cout << hour << ":" << min << ":" << sec << " ";
switch(Day%7)
{
case 1:
cout << "Thu ";
break;
case 2:
cout << "Fri ";
break;
case 3:
cout << "Sat ";
break;
case 4:
cout << "Sun ";
break;
case 5:
cout << "Mon ";
break;
case 6:
cout << "Tue ";
break;
case 0:
cout << "Wed ";
break;
}
if(day<10 && month<10)
cout << "0" << month << "/0" << day << "/" << year;
else if(month>=10 && day<10)
cout << month << "/" << "0" << day << "/" << year;
else if(day>=10 && month>=10)
cout << month << "/" << day << "/" << year;
else
cout << "0" << month << "/" << day << "/" << year;
return 0;
}
-
البته به دلیل محدودیت تایپ int متأسفانه از حدود سال 2070 به بعد باید یه فکری به حال خودت بکنی ... تابع من جواب نمی ده
-
توضیح در مورد time تابعیه تو لایبرری time.h که تعداد ثانیه های سپری شده از سال 1970 به بعد رو می ده ...
-
سلام
مرسی دوست عزیز کمک زیادی بهم کردی
موفق باشی.