No.16660![]() |
秒数を+1秒する方法 投稿者---プッチー(2004/09/08 11:34:13) |
||
こんにちは。 C++にて、2004/09/07 11:12:59にプラス1秒して 2004/09/07 11:13:00というような感じで変換したいのですが、 なかなかいい方法が見つかりません。どなたか、簡単に実現できる コーディング例とかご存じでしたら、教えてください。 |
No.16661![]() |
Re:秒数を+1秒する方法 投稿者---シャノン(2004/09/08 11:45:24) |
||
>こんにちは。 >C++にて、2004/09/07 11:12:59にプラス1秒して >2004/09/07 11:13:00というような感じで変換したいのですが、 >なかなかいい方法が見つかりません。どなたか、簡単に実現できる >コーディング例とかご存じでしたら、教えてください。 mktime とか。 |
No.16663![]() |
Re:秒数を+1秒する方法 投稿者---プッチー(2004/09/08 12:05:54) |
||
>>こんにちは。 >>C++にて、2004/09/07 11:12:59にプラス1秒して >>2004/09/07 11:13:00というような感じで変換したいのですが、 >>なかなかいい方法が見つかりません。どなたか、簡単に実現できる >>コーディング例とかご存じでしたら、教えてください。 > >mktime とか。 どうもありがとうございます。 mktimeで一旦、秒レベルまで変換して +1した後に、localtimeで変換すれば良いのですよね? |
No.16670![]() |
Re:秒数を+1秒する方法 投稿者---かずま(2004/09/08 13:28:02) |
||
> mktimeで一旦、秒レベルまで変換して > +1した後に、localtimeで変換すれば良いのですよね? tm_sec に 1 を足して mktime を呼べば、正しく修正されます。 #include <iostream> #include <iomanip> #include <sstream> #include <ctime> int main() { using namespace std; istringstream ss("2004/09/07 11:12:59"); struct tm t; char c; ss >> t.tm_year >> c >> t.tm_mon >> c >> t.tm_mday >> t.tm_hour >> c >> t.tm_min >> c >> t.tm_sec; t.tm_year -= 1900; t.tm_mon--; t.tm_sec++; mktime(&t); cout << setfill('0') << t.tm_year + 1900 << '/' << setw(2) << t.tm_mon + 1 << '/' << setw(2) << t.tm_mday << ' ' << setw(2) << t.tm_hour << ':' << setw(2) << t.tm_min << ':' << setw(2) << t.tm_sec << endl; return 0; } |
No.16672![]() |
Re:秒数を+1秒する方法 投稿者---プッチー(2004/09/08 13:51:42) |
||
どうもありがとうございました。 無事にできました。 |