Excel中文本函數的一個功能是將低於1的任何浮點值轉換爲HH:mm格式。 所以如果我做文本(0.756635,「HH:MM」),它會給我18:09。 我想知道這是如何工作的。問題是,我正在將我的代碼更改爲C,因此我需要在C中使用類似的函數,以將float更改爲該格式。 有沒有可以幫助我的圖書館?還是有人知道如何在Excel中的文本函數的作品?C中的Excel文本函數
0
A
回答
1
基本上整天(24小時)等於1
每小時等於1/24 = 0.0416666667
每分鐘是等於1 /(24 * 60)= 0.0006944444
每秒等於1 /(24 * 60 * 60)= 0.0000115741
For E.g 0.756635
HH: Integer Part of 0.756635*24=18
MM: Integer Part of MOD(0.756635*24,1)*60=09
完成慣例:
=CONCATENATE(A1*24-MOD(A1*24,1)&":"&MOD(A1*24,1)*60-MOD(MOD(A1*24,1)*60,1)&":"&ROUND(MOD(MOD(A1*24,1)*60,1)*60,0))
,如果你想3點05分10秒,你需要做3/24 + 10 /(24 * 60)+ 10 /(24 * 60 * 60),你會得到,如果你的號碼
在確定將其算到秒,你可以用這個公式(從時間數)
=HOUR(H27)/24+MINUTE(H27)/(24*60)+SECOND(H27)/(24*60*60)
我希望這可以幫助,您可以調整的公式來計算它在支持模
0
這是任何代碼基本上十進制格式的天。所以如果假設你有0.25的價值,你乘以24得到小時。如果小時數有小數點,則將小數點右邊乘以60,得到分鐘數。如果在幾分鐘內出現小數點,則將小數點右側乘以60得到秒數。
2
#include <stdio.h>
#include <math.h>
int main(void)
{
double x = 0.756635;
double h, m;
x = x * 24;
m = modf(x, &h) * 60;
printf("%02d:%02d\n", (int)h, (int)m);
return 0;
}
輸出:
18:09
如果你想避免math.h
:
#include <stdio.h>
int main(void)
{
double x = 0.756635;
double h, m;
x = x * 24;
h = (int)x;
m = (x - h) * 60;
printf("%02d:%02d\n", (int)h, (int)m);
return 0;
}
相關問題
- 1. Javascript相當於Excel的文本函數
- 2. Office.js Excel中:從javascript調用文本到列excel函數?
- 3. Excel中調用C的函數++程序
- 4. Excel:使用文本和時間函數
- 5. Excel文本函數總是返回
- 6. C#模仿Excel SLOPE函數
- 7. 從C#寫入Excel函數#
- 8. Excel:在第一列的文本函數中計算文本的出現
- 9. excel中的sumif函數根據文本顯示百分比
- 10. C#excel彩色文本
- 11. VBA Excel中的子函數或函數
- 12. C#相當於Excel的TINV函數
- 13. 記事本++中的C++文件中的函數列表
- 14. Excel中SUMIF函數細胞也含有一些文本值
- 15. 排序Excel中列數的文本
- 16. 寫入文本數據使用C#的excel文件
- 17. Python/SciPy版本的Excel FInv函數
- 18. Excel中的HOUR函數
- 19. r中的Excel OFFSET函數
- 20. Java中的Excel PMT函數
- 21. Excel中的VBA函數
- 22. 宏中的Excel函數
- 23. Excel中的函數Sumif
- 24. Excel中的SQL函數
- 25. SSRS 2012中的Excel函數
- 26. Excel中的LOOKUP函數
- 27. Powerhell中的Excel函數
- 28. MS Excel中的VBA函數
- 29. Excel中的間接函數
- 30. 從C函數寫文本到QTextEdit框