我正在做一個功能,UNIX時間轉換爲日期(DD-MM-YYYY)轉換Unix時間去約會
stock UnixToTime(x)
{
new year = 1970;
new dia = 1;
new mes = 1;
while(x > 86400)
{
x -= 86400;
dia ++;
if(dia == getTotalDaysInMonth(mes, year))
{
dia = 1;
mes ++;
if (mes >= 12)
{
year ++;
mes = 1;
}
}
}
printf("%i-%i-%i", dia, mes, year);
return x;
}
,但不起作用。
我正在測試功能1458342000(今天...)但打印> 13-3-2022,有什麼錯誤?
#define IsLeapYear(%1) ((%1 % 4 == 0 && %1 % 100 != 0) || %1 % 400 == 0)
getTotalDaysInMonth is this;
stock getTotalDaysInMonth(_month, year)
{
new dias[] = {
31, // Enero
28, // Febrero
31, // Marzo
30, // Abril
31, // Mayo
30, // Junio
31, // Julio
31, // Agosto
30, // Septiembre
31, // Octubre
30, // Noviembre
31 // Diciembre
};
return ((_month >= 1 && _month <= 12) ? (dias[_month-1] + (IsLeapYear(year) && _month == 2 ? 1 : 0)) : 0);
}
還張貼'IsLeapYear'的代碼。 – chqrlie
如果你需要類似的東西來製作,我會看看這個只包含頭文件的庫:https://github.com/HowardHinnant/date – MikeMB
這裏有一些庫函數。你爲什麼不使用它們呢? –