PDA

View Full Version : سوال: تابعی که زمان را برگرداند



EL_MPR
پنج شنبه 18 تیر 1394, 12:05 عصر
با سلام

یه تابع نوشتم که زمان را برگدونه ولی ارور میده میشه کمکم کنید اصلاحش کنم


#include <iostream>
#include <ctime>
#include <conio.h>
using namespace std;


char* getTimeDate()
{
char* zaman;


int main()
{
// current date/time based on current system
time_t now = time(0);

// convert now to string form
char* dt = ctime(&now);


cout << "The local date and time is: " << dt << endl;


cin.get();
}


char* getTimeDate ()
dt=zaman;


return zaman;
}

chikar
پنج شنبه 18 تیر 1394, 13:51 عصر
دوست عزیز در C++‎‎‎ ماکروهایی برای تاریخ و زمان به صورت آماده وجود داره و نیازی به نوشتن تابع وجود نداره!

#include <iostream>
void main()
{
std::cout << __TIME__ << __DATE__;
}

کامبیز اسدزاده
پنج شنبه 18 تیر 1394, 15:04 عصر
البته به یک اشتباه هم اشاره کنم کدی که جناب استارتر بهش اشاره کرده اند از لحاظ قوائد هم اشتباه است...
تابع main نباید داخل تایع getTimeDate باشد.

amirtork
جمعه 19 تیر 1394, 15:08 عصر
سلام.
متغیری از نوع time_t تعریف کنید، سپس مقدار اون رو با زمانی که با استفاده از تابع time بدست آوردید مقدار دهی کنید. برای اینکار دو روش وجود داره.
1- time(&VAR_NAME)
2- time_t myTime = time(NULL)
برای بدست آوردن تفاوت بازه های زمانی میتونید از تابع difftime استفاده کنید.
همچنین برای تبدیل مقدار متغیر های نوع time_t به string میتونید از تابع ctime یا تابع asctime بنا به نیازتون استفاده کنید.
برای اطلاعات بیشتر میتونید این لینک رو مطالعه کنید: http://www.cplusplus.com/reference/ctime/

rahnema1
جمعه 19 تیر 1394, 17:44 عصر
سلام
همون طور که دوستان اشاره کردند ماکروهای جالبی برای زمان هست اما در نظر داشته باشید این ماکرو ها زمان کامپایل شدن برنامه را ثبت می کنند اگه دنبال زمان جاری سیستم هستید همون تابعها با کمی اصلاح کار شما را راه می اندازند

chikar
جمعه 19 تیر 1394, 23:27 عصر
سلام
همون طور که دوستان اشاره کردند ماکروهای جالبی برای زمان هست اما در نظر داشته باشید این ماکرو ها زمان کامپایل شدن برنامه را ثبت می کنند اگه دنبال زمان جاری سیستم هستید همون تابعها با کمی اصلاح کار شما را راه می اندازند

بله جناب راهنمای عزیز درست می گن، این نکته رو فراموش کردم بگم!

EL_MPR
شنبه 20 تیر 1394, 19:06 عصر
خیلی ممنون دوستان :لبخندساده:




#include <iostream>
#include <ctime>
using namespace std;



int main()
{
// current date/time based on current system
time_t now = time(0);

// convert now to string form
char* dt = ctime(&now);


cout << "The local date and time is: " << dt << endl;


cin.get();
}





فقط یه سوال فایلی را توسط کد زیر در درایو D ایجاد کردم ولی نمی دونم چطور باید زمانی که در کد بالا گرفتم رو بذارم بعنوان نام فایلی که ایجاد می کنم میشه راهنمایی کنید



#include <cstdarg>
#include <iostream>
#include <fstream>
using namespace std;




int main()
{
char str[10];




ofstream a_file ("D:\\process.txt");//ofstream a_file ("D:\\Proc2015-04-07_14-15.txt");
// Outputs to example.txt through a_file
a_file<< "\r\nszProcessName";
// Close the file stream explicitly
a_file.close();

}

rahnema1
دوشنبه 22 تیر 1394, 16:26 عصر
time_t now = time(0);
string dt = string(ctime(&now));
const char * filename = (string("D:\\proc") + dt.erase(dt.size() - 1, 1) + string(".txt")).c_str();
ofstream a_file (filename);
a_file<< "\r\nszProcessName";
a_file.close();

EL_MPR
سه شنبه 23 تیر 1394, 11:42 صبح
خیلی ممنونم

ببخشید این فایل رو میشه تغییر مسیر داد مثلا تو درایو D ایجادش کرد؟الان داخل مسیر سورس کدم ایجاد میشه

ehsan_faal
سه شنبه 23 تیر 1394, 12:01 عصر
این کدی که آقای rahnema1 گذاشتن توی درایو D هستش دیگه!

EL_MPR
پنج شنبه 25 تیر 1394, 18:02 عصر
بله درسته ولی متاسفانه فایل در درایو D ایجاد نمی شه !امتحان کنید



#include <iostream>
#include <ctime>
#include <fstream>
#include <conio.h>
#include <string>
using namespace std;
int main()
{


time_t now = time(0);
string dt = string(ctime(&now));
const char * filename = (string("D:\\proc") + dt.erase(dt.size() - 1, 1) + string(".txt")).c_str();
ofstream a_file (filename);
a_file<< "\r\nszProcessName";
a_file.close();


cin.get();
return 0;


}

Share & Learn
پنج شنبه 25 تیر 1394, 23:14 عصر
سلام
کد رو یه مقدار تغییر دادم
خدمت شما:

int main()
{
time_t now = time(0);
struct tm tstruct;
tstruct = *localtime(&now);
char fName[32];
strftime(fName, 32, "D:\\Proc%Y-%m-%d_%H-%M-%S.txt", &tstruct);

ofstream a_file (fName);
a_file<< "Hi\r\nThis is a test\r\nEnd!";
a_file.close();

cin.get();
return 0;
}

EL_MPR
جمعه 26 تیر 1394, 01:28 صبح
ممنون مهندس:لبخندساده: