Excel からインポートされた Double データを変換するには、double を操作してから、time ライブラリを使用して変換する必要があります。
次のステップは、windows time ライブラリを使用することです。次の URL にあるコード スニペットを使用して、変換を実行できます。 http://www.thinkage.ca/english/gcos/expl/c/lib/strfti.html
タイム ライブラリと互換性を持たせるには、Excel から取得した double を変更する必要があります。 time ライブラリは、「EPOCH からの秒数」という形式の引数を受け入れます。得られる double は、EPOCH からの日数です。変換は次のようになります。
double obtainedDateDoubleFromExcel;
double convertedDate;
convertDate = (obtainedDateDoubleFromExcel - 2) * 24 * 60 * 60;
上記の URL のスニペットを次のように変更できます。
double obtainedDateDoubleFromExcel;
double convertedDate;
convertedDate = (obtainedDateDoubleFromExcel - 2) * 24 * 60 * 60;
You may go on to modify the snippet at the above mentioned URL in the following way:
char s[30];
size_t i;
struct tm tim;
time_t now;
now = convertedDate;
tim = *(localtime(&now));
i = strftime(s,30,"%b %d, %Y\n",&tim);