Aşağıdaki kod var:dönüştürme struct tm time_t için
struct tm time;
strptime("27052010", "%d%m%Y", &time);
cout << "sec: " << time.tm_sec << "\n";
cout << "min: " << time.tm_min << "\n";
cout << "hour: " << time.tm_hour << "\n";
cout << "day: " << time.tm_mday << "\n";
cout << "month: " << (time.tm_mon + 1) << "\n";
cout << "year: " << time.tm_year << "\n";
time_t t = mktime(&time);
cout << "sec: " << time.tm_sec << "\n";
cout << "min: " << time.tm_min << "\n";
cout << "hour: " << time.tm_hour << "\n";
cout << "day: " << time.tm_mday << "\n";
cout << "month: " << (time.tm_mon + 1) << "\n";
cout << "year: " << time.tm_year << "\n";
cout << "time: " << t << "\n";
çıktısı: mktime()
değiştireceğim time
değerlerini yapar ve neden dönüştürülmüş neden
sec: 1474116832
min: 32767
hour: 4238231
day: 27
month: 5
year: 110
sec: 52
min: 0
hour: 6
day: 2
month: 9
year: 640
time: 18008625652 (Fri, 02 Sep 2540 04:00:52 GMT)
Benim sorum time_t
, giriş tarihime eşit değil. Çıktının 1970'den beri saniyeler içinde ifade edilen tarih olduğunu tahmin ediyorum (27.05.2010 = 1330905600). peşin
'mktime' çağrısından önce time.tm_hour',' time.tm_min' ve 'time.tm_sec' değerleri nasıldı? – Wintermute
@Wintermute Bilgileri ekledim. – aQuip
Err ... başlatılmamış bir yapıyı aldınız, birçok alanından üçünü başlattınız, daha sonra "dönüştürdünüz" (üç anlamlı değer artı bir sürü çöp), daha sonra alanları geri okuyor ve neden daha çok çöp aldığınızı merak ediyorsunuz? ;-) GIGO, gerçekten. – DevSolar