Filemakerで15分区切りで時刻を切り上げ翌日にも反映させる

シェアする

  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存

時間単位で切り上げる計算式(翌日にも反映)

タイムカードのように、打刻した時間を15分区切りで時間を切り上げ、24時をまわったら翌日にも反映させたい場合の計算式というかポイント(コツ)です。

■ポイント

  1. 指定した日時を、日付と時刻に一度分ける
  2. 時刻を15分区切りで切り上げる
  3. タイムスタンプに戻す

■前提条件

「タイムスタンプ_指定」フィールドに、現在の(もしくは指定した)切り上げ前の日時のタイムスタンプをセットしておく。
下記の計算式で、15分区切りで切り上げたタイムスタンプが返ってきます。

■計算式

If(
  not IsEmpty( タイムスタンプ_指定 );
  Let([
    $指定日付 = GetAsDate ( タイムスタンプ_指定 );
    $指定時刻 = GetAsTime ( タイムスタンプ_指定 );
    $修正_年 = GetAsNumber( Year( $指定日付) );
    $修正_月 = GetAsNumber( Month( $指定日付) );
    $修正_日 = GetAsNumber( Day( $指定日付 ) );
    $修正_時 = Hour( Ceiling ( $指定時刻 / ( 15 * 60 ) ) * 15 * 60 );
    $修正_分 = Minute( Ceiling ( $指定時刻 / ( 15 * 60 ) ) * 15 * 60);
    $修正_秒 = 0
    ];
    Timestamp ( Date ( $修正_月 ; $修正_日 ; $修正_年 ) ; Time ( $修正_時 ; $修正_分 ; $修正_秒 ) )
  );
  ""
)

【詳細】

下記は、計算式でなくフィールドで処理したい場合です。
書式は、「フィールド名」= 計算値 です。

■入力

「タイムスタンプ_作成」 = Get( タイムスタンプ )
※TimeStamp関数で指定してもよい

■自動計算(1)


「指定日付」 = Date ( Month( タイムスタンプ_作成 ) ; Day( タイムスタンプ_作成 ) ; Year( タイムスタンプ_作成 ) )


「指定時刻」 = Time ( Hour( タイムスタンプ_作成 ) ; Minute ( タイムスタンプ_作成 ) ; Seconds ( タイムスタンプ_作成 ) )

■自動計算(2)


「修正_時」 = Hour( Ceiling ( 指定時刻 / ( 15 * 60 ) ) * 15 * 60 )
「修正_分」 = Minute( Ceiling ( 指定時刻 / ( 15 * 60 ) ) * 15 * 60 )
「修正_月」 = GetAsNumber( Month ( 指定日付 ) )
「修正_日」 = GetAsNumber( Day( 指定日付 ) )

■自動計算(3)


「タイムスタンプ_修正」 = Timestamp ( Date ( 修正_月 ; 修正_日 ; 修正_年 ) ; Time ( 修正_時 ; 修正_分 ; 0 ) )

関連記事

FileMakerでiPad miniのバーコードリーダーを2行で作る... iPadのカメラとFileMaker Pro11を使ってバーコードリーダーを数ステップで開発する ■目的 FileMaker11で開発したDB(.fp7ファイル)を、iOS(iPhone, iPadシリーズ, iPod Touch)で動かし、標準カメラでバーコードを読み取って、備品管理や書籍...
FileMakerのIWP(インスタントWEB公開)で使われるCSSの保存場所... InstantWebPublishing(IWP)のデフォルトCSSの保存場所 FileMakerPro11のインスタントWEB公開では、外部CSSを利用できないのですが、デフォルトの設定はどこかしらと思って調べてみました。 C:Program FilesFileMakerFile...
Filemakerでレイアウトのサイズにウインドウを自動調整+センタリング... FileMakerでウインドウ内のレイアウト描画領域を取得せずにウインドウサイズをフィット(自動変更)させる Filemakerで、ウインドウを開いた時、サイズをピッタリとレイアウトの領域に合わせたかったのですが、最初はGET()関数で「Get ( ウインドウ高さ )」とか「Get ( ウイン...

スポンサーリンク
レクタングル(大)広告