koduna göre artırılması Kodun altında çalışıyorum. Yukarıdaki Programı idam Eğermktime() işlevinin kafa karıştırıcı davranışı: tm_hour sayısının bir
int main()
{
struct tm storage={0,0,0,0,0,0,0,0,0};
char *p = NULL;
p = (char *)strptime("2012-08-25 12:23:12","%Y-%m-%d %H:%M:%S",&storage);
char buff[1024]={0};
strftime(buff,1024,"%Y-%m-%d %H:%M:%S",&storage);
cout << buff << endl;
storage.tm_sec += 20;
strftime(buff,1024,"%Y-%m-%d %H:%M:%S",&storage);
cout << buff << endl;
mktime(&storage);
strftime(buff,1024,"%Y-%m-%d %H:%M:%S",&storage);
cout << buff << endl;
return 0;
}
, yerine '2012-08-25 00:23:32' arasında '2012/08/25 13:23:32' yazdırır. Lütfen Yardım, neden tm_hour değerini arttırıyor. Bu, giriş tarihini '2012-02-25 12:23:32' olarak girdiğimde, kafa karıştırıcı olan programda doğru şekilde çalışıyor.
çıkışı - sistemimde>
[[email protected] root]$ ./a.out
2012-08-25 12:23:12
2012-08-25 12:23:32
2012-08-25 13:23:32
[[email protected] root]$
Tarih Bilgisi, ->
[[email protected] root]$ date
Sat Aug 25 08:28:26 EDT 2012
Kod, saatin arttığını göstermiyor.Bunu yapmak için, “strptime” den gelen sonucu ve ayrıca “mktime” çağrısından gelen sonucu görüntüleyin. Bu, gerçekte olanları düzeltmeye yardımcı olacaktır. –
Üzgünüz, bunu ayrıştıramıyorum. Biri yerine üç çıktı var, ama nereden geldiklerine dair bir gösterge yok. Lütfen çıktıyla eşleştirmek için örnek kodu güncelleyin. –