• slider image 71
  • slider image 72
  • slider image 73
:::


Browsing this Thread:   1 Anonymous Users






XC32 mktime() 問題
#1
高級會員
高級會員


查看用戶資訊
使用 mktime 發現結果總是不對, rt1 = 1382976320, 正確應該是 1382932800.(2013年10月28日12:00:00)
當執行過 rt1 = mktime(&st1); 這一行後
st1.tm_sec = 0; --> 變為 20
st1.tm_min = 0; --> 變為 5
st1.tm_hour = 12;--> 變為 13

執行過 at1 = gmtime(&rt1);
at1->tm_sec = 20;
at1->tm_min = 5;
at1->tm_hour = 16;
at1->tm_mday = 28;
at1->tm_mon = 9;
at1->tm_year = 113;
at1->tm_wday = 1;
at1->tm_yday = 300;
at1->tm_isdst = 0;

請問問題何在?

time_t RTCTime(void)
{
struct tm st1;
struct tm *at1;
time_t rt1, rt2;

st1.tm_sec = 0;
st1.tm_min = 0;
st1.tm_hour = 12;
st1.tm_mday = 28;
st1.tm_mon = 9;
st1.tm_year = 2013-1900;
st1.tm_wday = 0;
st1.tm_yday = 0;
st1.tm_isdst = -1;

rt1 = mktime(&st1);
//t2 = (time_t)1382932800;
at1 = gmtime(&rt1);

return(rt1);
}

發表於: 2015/7/20 16:22
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: XC32 mktime() 問題
#2
資深會員
資深會員


查看用戶資訊
試試看
struct tm *at1;

改為
struct tm at1[1];

或者
struct tm at1;
&at1 = gmtime(&rt1);

發表於: 2015/7/20 17:36
程式是
依照寫出來(的code),跑出結果
不是依照你想出來的,得到結果

先有需求規格 後有解決方案
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: XC32 mktime() 問題
#3
高級會員
高級會員


查看用戶資訊
參照:

jason680 寫道:
試試看
struct tm *at1;

改為
struct tm at1[1];

或者
struct tm at1;
&at1 = gmtime(&rt1);


感謝啦! 但在這一條就不對了.
rt1 = mktime(&st1);
目前也只需要這一條對了就可以,
我在 BCB 6.0 驗證答案是正確的 1382932800,
目的是要把在 PIC32 上記錄的資料含每一筆的時間傳到 PC 上.
使用 time_t 只佔 4 Bytes 最省空間.

發表於: 2015/7/20 17:52
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部







You can view topic.
不可以 發起新主題
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.

[進階搜尋]