如何获取当前系统时间并转换为数组?

时间:2015-05-15 07:40:19

标签: c++ datetime argument-passing

我想分别获取时间和日期以将其放入数组中。我希望调用函数类似于int date(int Day,int Month,int Year),但它不正确。如何定义参数Year Month Day和Hour min sec函数来使用它们?

using namespace std;
int date() {
    time_t currentTime;
    struct tm *localTime;

    time(&currentTime);                  
    localTime = localtime(&currentTime);

     int Day = localTime->tm_mday;
     int Month = localTime->tm_mon + 1;
     int Year = localTime->tm_year + 1900;
    return (0);
}
int time() {
    time_t currentTime;
    struct tm *localTime;

    time(&currentTime);                   
    localTime = localtime(&currentTime); 

    int Hour = localTime->tm_hour;
    int Min = localTime->tm_min;
    int Sec = localTime->tm_sec;
    return (0);
}
int main() {
    unsigned int new_date=date();
    char write[4];
    memcpy(write,&new_date,4);

    unsigned int new_time=time();
       char wrt[4];
       memcpy(wrt,&new_time,4);



    }

1 个答案:

答案 0 :(得分:0)

您必须声明函数以引用传递参数:

              // pass arguments by reference to change them in the function 
int date(int &Day, int &Month, int&Year) {
    time_t currentTime;
    struct tm *localTime;

    time(&currentTime);                  
    localTime = localtime(&currentTime);

     Day = localTime->tm_mday;   // use the reference argument
     Month = localTime->tm_mon + 1;
     Year = localTime->tm_year + 1900;

    return (0);
}

然后您可以在main()

中使用它
int d,m,y; 
date(d,m,y); 
cout << d<<"/"<<m<<"/"<<y<<endl;

你当然可以做同样的事情。