動作確認
C++ Builder XE4
Rad Studio 10.2 Tokyo Update 2 (追記: 2017/12/27)
やりたいこと
- 指定の時刻に近い10分区切りの時刻を取得したい
- 例: 17:13 >> 17:10
- 例: 18:10 >> 18:10
参考: kazuさんの投稿
Unit1.cpp
#include "DateUtils.hpp"
...
static TDateTime getRoundedDateTime_each10min(TDateTime srcDt)
{
int dt_min = srcDt.FormatString(L"nn").ToInt();
int reduce_min = dt_min % 10; // for every 10 min
TDateTime outDt = IncMinute(srcDt, - reduce_min);
String msg = DateTimeToStr(outDt);
OutputDebugString(msg.c_str());
return outDt;
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TDateTime srcDt1 = VarToDateTime("2015/12/14 17:13");
TDateTime outDt1 = getRoundedDateTime_each10min(srcDt1); // 17:10
TDateTime srcDt2 = VarToDateTime("2015/12/14 18:10");
TDateTime outDt2 = getRoundedDateTime_each10min(srcDt2); // 18:10
}
テストケースとして、同値と境界値のチェックは上の2つでいいのだろうか。
参考のページについては、最初、検索で見つけられなくなってしまっていた。
自分がコメントしたのを覚えていたので、自分のコメント一覧からたどったが、コメントの方も検索できないので、見つけるのに2分くらいの時間がかかってしまった。
こうして、参考になる記事が日々うずもれていくのはどうにかしたいものだ。