LibXL获取Excel时间格式数据为小数,转换为时分秒

在使用LibXL读取Excel数据时,发现如果表格数据为时间格式,读取出来的是一串小于1的纯小数。经过测试发现,Excel中时间格式的存储就是按照纯小数格式存储的,这样便于用户的自定义时间样式。

Excel中存储的纯小数代表了该时间在一天24H内的占比,因此程序获取到该纯小数后需要自行转换为时分秒,代码如下:

#include<iostream>
using namespace std;

void excelTimeToTime(const double &excelTime, int &hour, int &min, int &sec)
{
    double h = excelTime*24;
    hour = int(h);
    double m = (h-hour)*60;
    min = int(m);
    double s = (m-min)*60;
    sec = round(s);//秒需要四舍五入
}

int main()
{
    double time = 0.68932;
    int h,m,s;
    excelTimeToTime(time,h,m,s);
    cout<<" Hour:"<<h<<" Min:"<<m<<" Sec:"<<s;
}

输出结果: Hour:16 Min:32 Sec:37

    原文作者:喵喵叫的猴
    原文地址: https://blog.csdn.net/zjgo007/article/details/120957899
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞