MFC如何将1秒转换为00:00:01格式(即%H:%M:%S)

时间:2021-03-01 06:36:48
有一个CString类型的字符串,比如“0.2”秒,要将它转换为00:00:00.200的格式(即%H:%M:%S),如果是“1.0”秒的话,转为00:00:01.000。该如何来转?最后的时间格式也需要为CString类型。
谢谢。

5 个解决方案

#1



CString s1,sH,sM,sS;
s1 = "3701.1";
float fTemp;
int nTemp;
fTemp = atof(s1);
nTemp = int(fTemp);
sH.Format("%d", int(nTemp/3600));
nTemp = int(fTemp - (int(nTemp/3600))*3600);
sM.Format("%d", int(nTemp/60));
nTemp = nTemp - (int(nTemp/60))*60;
fTemp = fTemp -int(fTemp);

if (strlen(sH)==1)
sH = "0" + sH;
if (strlen(sM)==1)
sM = "0" + sM;
if (strlen(sS)==1)
sS = "0" + sS;
fTemp = nTemp + fTemp;
sS.Format("%.3f", fTemp);
if (fTemp < 10)
sS = "0" + sS;
s1 = sH + ":" + sM + ":" + sS;

#2


上面s1 = “3701.01”就是你要输入的字符串

#3


引用 楼主 u013211677 的回复:
有一个CString类型的字符串,比如“0.2”秒,要将它转换为00:00:00.200的格式(即%H:%M:%S),如果是“1.0”秒的话,转为00:00:01.000。该如何来转?最后的时间格式也需要为CString类型。
谢谢。

非常谢谢你。还有个小问题想请教下:
MFC如何将1秒转换为00:00:01格式(即%H:%M:%S)
这个时间写入到Excel中后是00:00.1,需要手动修改单元格格式才能显示为00:00:00.100。这个该怎样改呢?谢谢~

#4


引用 1 楼 boylafong 的回复:

CString s1,sH,sM,sS;
s1 = "3701.1";
float fTemp;
int nTemp;
fTemp = atof(s1);
nTemp = int(fTemp);
sH.Format("%d", int(nTemp/3600));
nTemp = int(fTemp - (int(nTemp/3600))*3600);
sM.Format("%d", int(nTemp/60));
nTemp = nTemp - (int(nTemp/60))*60;
fTemp = fTemp -int(fTemp);

if (strlen(sH)==1)
sH = "0" + sH;
if (strlen(sM)==1)
sM = "0" + sM;
if (strlen(sS)==1)
sS = "0" + sS;
fTemp = nTemp + fTemp;
sS.Format("%.3f", fTemp);
if (fTemp < 10)
sS = "0" + sS;
s1 = sH + ":" + sM + ":" + sS;

非常谢谢你。还有个小问题想请教下:
MFC如何将1秒转换为00:00:01格式(即%H:%M:%S)
这个时间写入到Excel中后是00:00.1,需要手动修改单元格格式才能显示为00:00:00.100。这个该怎样改呢?谢谢~

#5


引用 2 楼 boylafong 的回复:
上面s1 = “3701.01”就是你要输入的字符串

已解决,谢谢了。 MFC如何将1秒转换为00:00:01格式(即%H:%M:%S)

#1



CString s1,sH,sM,sS;
s1 = "3701.1";
float fTemp;
int nTemp;
fTemp = atof(s1);
nTemp = int(fTemp);
sH.Format("%d", int(nTemp/3600));
nTemp = int(fTemp - (int(nTemp/3600))*3600);
sM.Format("%d", int(nTemp/60));
nTemp = nTemp - (int(nTemp/60))*60;
fTemp = fTemp -int(fTemp);

if (strlen(sH)==1)
sH = "0" + sH;
if (strlen(sM)==1)
sM = "0" + sM;
if (strlen(sS)==1)
sS = "0" + sS;
fTemp = nTemp + fTemp;
sS.Format("%.3f", fTemp);
if (fTemp < 10)
sS = "0" + sS;
s1 = sH + ":" + sM + ":" + sS;

#2


上面s1 = “3701.01”就是你要输入的字符串

#3


引用 楼主 u013211677 的回复:
有一个CString类型的字符串,比如“0.2”秒,要将它转换为00:00:00.200的格式(即%H:%M:%S),如果是“1.0”秒的话,转为00:00:01.000。该如何来转?最后的时间格式也需要为CString类型。
谢谢。

非常谢谢你。还有个小问题想请教下:
MFC如何将1秒转换为00:00:01格式(即%H:%M:%S)
这个时间写入到Excel中后是00:00.1,需要手动修改单元格格式才能显示为00:00:00.100。这个该怎样改呢?谢谢~

#4


引用 1 楼 boylafong 的回复:

CString s1,sH,sM,sS;
s1 = "3701.1";
float fTemp;
int nTemp;
fTemp = atof(s1);
nTemp = int(fTemp);
sH.Format("%d", int(nTemp/3600));
nTemp = int(fTemp - (int(nTemp/3600))*3600);
sM.Format("%d", int(nTemp/60));
nTemp = nTemp - (int(nTemp/60))*60;
fTemp = fTemp -int(fTemp);

if (strlen(sH)==1)
sH = "0" + sH;
if (strlen(sM)==1)
sM = "0" + sM;
if (strlen(sS)==1)
sS = "0" + sS;
fTemp = nTemp + fTemp;
sS.Format("%.3f", fTemp);
if (fTemp < 10)
sS = "0" + sS;
s1 = sH + ":" + sM + ":" + sS;

非常谢谢你。还有个小问题想请教下:
MFC如何将1秒转换为00:00:01格式(即%H:%M:%S)
这个时间写入到Excel中后是00:00.1,需要手动修改单元格格式才能显示为00:00:00.100。这个该怎样改呢?谢谢~

#5


引用 2 楼 boylafong 的回复:
上面s1 = “3701.01”就是你要输入的字符串

已解决,谢谢了。 MFC如何将1秒转换为00:00:01格式(即%H:%M:%S)