LoginSignup
0
1

More than 5 years have passed since last update.

c++ builder XE4, 10.2 Tokyo > TDateTime > 指定時刻に近い時刻を得る (10分区切り)

Last updated at Posted at 2015-12-14
動作確認
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分くらいの時間がかかってしまった。

こうして、参考になる記事が日々うずもれていくのはどうにかしたいものだ。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1