將軍事時間格式 (hhmm) 轉換為時間格式 (hh:mm)<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />我需要將 hhmm 格式的軍事時間(例如 1432 或 725)轉換為 hh:mm 格式,例如 14:32 到 7:25。是否有一個簡單的公式可以進行轉換,或者我應該使用腳本嗎?謝謝。
回复:將軍事時間格式 (hhhh) 轉換為時間格式 (hh:mm)有用! 太感謝了。 通過查看您提出的公式,我學到了很多東西!回复:將軍事時間格式 (hhhh) 轉換為時間格式 (hh:mm)我的第一個問題是,如果輸入時間值的長度小於 4 個字符,是否應該假設軍事時間左側缺少零 (0)?如果是這種情況,我提出以下解決方案;它用前導零填充值,然後執行轉換。
standard = Substr( "00", Length( Char( :Military ) ) - 1 ) ||
Char( :Military );
Num( Substr( Char( :standard ), -2 ) ) * 60
+Num(
Substr(
Char( :standard ),
1,
(Length( Char( :standard ) ) - 2)
)
) * 3600;
回复:將軍事時間格式 (hhhh) 轉換為時間格式 (hh:mm)我試圖使用此代碼將字符串轉換為時間格式 (hh:mm)
Num( Substr( Char( :Military ), -2 ) ) * 60 + Num(
Substr( Char( :Military ), 1, (Length( Char( :Military ) ) - 2) )
) * 3600
但是,我意識到如果字符串只有 2 位數字,它就不會被轉換。 例如,如果它是 26,則不會轉換為 12:26am。 但是,一個 3 位數字的字符串可以正常工作(100 變為凌晨 1:00)
怎麼會這樣?回复:將軍事時間格式 (hhhh) 轉換為時間格式 (hh:mm)我將您的代碼發佈到新字段的公式部分,將該字段更改為我的數據集列名稱,並且效果很好!
Num( Substr( Char( :Military ), -2 ) ) * 60 + Num(
Substr( Char( :Military ), 1, (Length( Char( :Military ) ) - 2) )
) * 3600
太感謝了!
回复:將軍事時間格式 (hhhh) 轉換為時間格式 (hh:mm)嗨,吉姆,
我如何使用這個腳本? 我需要更改哪些變量?
然後數據集的名稱是“transaction_data”,駐留軍事時間的列的名稱是“DAY”(transaction_data:DAY)
那麼,我應該如何將這兩個變量替換到您的腳本中並運行呢?
抱歉這樣的菜鳥問題。
回复:將軍事時間格式 (hhhh) 轉換為時間格式 (hh:mm)從軍事時間轉換為常規時間怎麼樣?
回复:將軍事時間格式 (hhhh) 轉換為時間格式 (hh:mm)另一種完全避免字符串的方法:
dt << New Column( "time",
Numeric,
"Continuous",
Format( "hr:m", 12 ),
Formula( Floor( :Military / 100 ) * 3600 + Mod( :Military, 100 ) * 60 )
);
回复:將軍事時間格式 (hhmm) 轉換為時間格式 (hh:mm)吉姆,您的解決方案非常有效。 我喜歡一切都保持數字形式。 非常感謝!
回复:將軍事時間格式 (hhmm) 轉換為時間格式 (hh:mm)拜倫,非常感謝您的指導。您提出的方法有效;但是,它將變量保持在字符狀態。
我已保存您的腳本以備將來使用!
回复:將軍事時間格式 (hhhh) 轉換為時間格式 (hh:mm)這是做 Bryon 所展示的同一件事的不同方法。我的版本直接轉到數字時間值,而不是創建一個字符值然後輸入。
名字默認到這裡( 1個) ;
// 創建一個包含一些軍事時間的樣本數據表.....
// 該列可以是數字或字符...轉換
// 公式同時處理
dt =新表( 《無題3》 ,添加行( 2個) ,新建專欄( “軍隊” ,數字, “連續的” ,格式( “最好的” , 12 ) ,設置值( [ 1421 , 923 ] ) ) ) ;
// wait() 函數只是為了增加戲劇效果 
等待( 2個) ;
// 添加一個新列來保存轉換後的時間
// 使用時間格式,因為轉換將創建
// 一個值,它是自午夜以來的秒數
dt <<新建專欄( “時間” ,數字, “連續的” ,格式( “小時:米” , 12 ) ) ;
等待( 2個) ;
// 遍歷所有行並進行轉換
// 該公式將作為列公式使用,只需刪除
// “:時間=”
對於每一行(
:時間=數量(子字符串(字符( :軍隊) , - 2個) ) * 60 +
數量(子字符串(字符( :軍隊) , 1個, (長度(字符( :軍隊) ) - 2個) ) ) * 3600
) ;
回复:將軍事時間格式 (hhhh) 轉換為時間格式 (hh:mm)可能有一種更簡單的方法可以做到這一點;但是,這很有效。
步驟1
重複(“0”,4 - 長度(字符(:開始)))||字符(:開始)
將起始數字變成用零填充的 4 位字符(這對於郵政編碼也很方便)
第2步
左(:第 1、2 步)|| “:” ||右( :Step 1, 2 )
在小時和分鐘之間插入一個冒號
步驟 3
格式( Informat( :Char 24 hr Time, "h:m" ), "h:m" )
此公式將字符 24 小時制轉換為午夜後的秒數,然後將秒數轉換為 12 小時制。
Informat 評估一個字符串並返回一個數字
format 計算一個數字字符串並返回一個字符
| 開始 |
步驟1 |
第2步 |
步驟 3 |
| 3個 |
0003 |
00:03 |
上午 12:03 |
| 30 |
0030 |
00:30 |
上午 12:30 |
| 1130 |
1130 |
11:30 |
上午 11:30 |
| 1830 |
1830 |
18:30 |
下午6:30 |
…………
或者你可以用一個公式在一個“簡單”的步驟中完成這一切
Format(
Informat(
Left( Repeat( "0", 4 - Length( Char( :Start ) ) ) || Char( :Start ), 2 ) || ":" ||
Right( Repeat( "0", 4 - Length( Char( :Start ) ) ) || Char( :Start ), 2 ),
"h:m"
),
"h:m"
);
我收集了一系列激烈的公式,這些公式可以在特殊情況下回收。