星期四, 11月 24, 2005

12 小時與24小時制

24小時制是 0 - 23
12小時制是1-12,但是實際上應該是12.1.2.3.4.5.6.7.8.9.10.11 (12進入另一個半天)

如果要coding轉換這兩者。也就是說內部變數使用24小時制,顯示使用12 小時制加上AM/PM。
就要把顯示分開處理,因為12 hr制的數值是不連續的:
AM 12. 1. 2. 3. 4. 5. 6. 7. 8. 9.10.11  PM 12. 1. 2. 3. 4. 5. 6. 7. 8. 9.10.11

AM11轉PM 12還好,對應PM12是24小時制的13,PM 1是24小時制的的14。
但是AM12對應的是0,就不能用了。
所以最好的方法是顯示時分開。

...這一篇不知道在講甚麼,我自己都看不懂,我要講的是要針對 0, 12作轉換。所以if - then -else會多一層
if (h23>=12) {
h12flag= ISPM;
if(h23==12) // 針對12 作特別處理
h12=12;
else
h12=h23-12;
}else{
h12flag=ISAM;
if(h23==0) // 針對0 特別處理
h12=12;
else
h12=h23;
}
很醜,有兩個特別處理,查表可能比較漂亮。
不知道那一個比較省code。

沒有留言:

網誌存檔