0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【BizRobo!】 月末金曜日の日付取得について

Last updated at Posted at 2022-05-31

はじめに

現在、RAPを実務で行っていますが、まだまだまだまだ経験が浅く、日々勉強中です。
本記事については、自身の備忘録も含め同じ様な所で頭を抱えている方に対して、
少しでもヒントになり、先に進める力となれれば良いなと思い記事にしましたーー!

今回のTips

今回は、月末金曜日の日付取得についてお話します。
あまり使う機会はないのですが、他に応用できる技術でもありますのでご紹介します。

Tips概要

内容としては、すごく簡単なのですが、
「当月から月をプラス1して、日を金曜日になるまでマイナスしていく」 です。
では、詳しい内容を詳細で確認していきます。

Tips詳細

ロボットの処理順序としては以下になります。

①当日の日付を取得
②日付を「1日」に変更
③取得した日付に1か月追加する
④1か月先の日付の曜日を取得する
⑤金曜日かどうかを判定
⑥(OK) ロボット終了
⑥(NG) 日付から1日マイナスする
⑦④に戻り、該当の日付になるまで④~⑥を繰り返し

  • ①当日の日付を取得
    当日の日付を取得して「Today」変数に格納します。
    (変数の名前はなんでも大丈夫です (ShortTextで作成しています))
    ①当日の日付を取得.png

  • ②日付を「1日」に変更
    取得した当日日付について、日の部分を「1日」に揃えます。
    (後ほど、生成した日付から1日ずつマイナスしていき、月末金曜日を取得しますが、その際に取得した当日日付が10日とかだと、月末金曜日を取得する前に別の金曜日を取得してしまい正しい値が確認できないため)
    ②日付を「1日」に変更.png

  • ③取得した日付に1か月追加する
    ②の工程で取得した日付に対し、1か月加算し「Friday」変数へ格納します。
    (2023/05/01 → 2023/06/01)
    (日付処理 > 変更日 の順に選択)
    ③取得した日付に1か月追加する.png

  • ④1か月先の日付の曜日を取得する
    「Friday」変数に入っている日付の曜日を算出し、「Youbi」変数へ格納します。
    ④1か月先の日付の曜日を取得する.png

  • ⑤金曜日かどうかを判定
    ④で取得した曜日が金曜日かどうか判定します。
    ⑤金曜日かどうかを判定.png

  • ⑥(OK) ロボット終了
    金曜日であれば、後続の処理を実行します。

  • ⑥(NG) 日付から1日マイナスする
    金曜日ではなかった場合、「Friday」変数に格納されている日付をマイナス1日します。
    ⑥(NG) 日付から1日マイナスする.png

⑦④に戻り、該当の日付になるまで④~⑥を繰り返し
上記のループを「金曜日」になるまで続け、金曜日なったタイミングでループを抜ける感じです。

他にも、ただ月末の日が取得したいだけであれば、曜日の判定はいらないですし、
翌月の月末金曜日が取得したいのであれば、月を加算する処理で「+2」してあげればOKです。
色々、応用は出来る処理フローですので、困ったときは使ってみてください。

まとめ

今回は、月末金曜日の日付取得について説明しました。
すごくシンプルな処理ではあるのですが、「月末の金曜日だけ動かしたいんだよね~」とお客様に聞かれた時、知らないとスムーズに回答できなかったりなど、意外にデメリットはあります。
どこかのタイミングで皆様のお役に立てば幸いです。

0
0
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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?