1
1

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 3 years have passed since last update.

UiPath:本日の半期、四半期を得る方法

Posted at

皆もすなるQiitaといふものを、儂もしてみむとてするなり。

と言う訳で、こん**は!はなっち!です。

DateTime型ってのは、単に日付とか日時を格納して、.ToString辺りで文字列化して、ファイル名の一部にしてみたりって位しか使っていなかったんですが、業務要件によっては「年度のフォルダの中にファイルがあるんだよね」なんて言われてしまって。。。

ってのは、UiPath:本日の年度を得る方法で書いたネタ。

今回は、「半期毎でフォルダを分けているんだよね」「うちは四半期毎でまとめているんですよ」なんて言う場合に使うロジックのお話。

年度を求めるのには、.AddMonths(-3).Yearを使用すればいい。その際に月と言うのは、.Monthと言うメソッドがあるので、簡単に取得できる。
月が得られるって事は、その値が1~6だったら上半期(1H)、7~12だったら下半期(2H)。更に言うと、その値が1~3だったら第1四半期(1Q)、4~6だったら第2四半期(2Q)、7~9だったら第3四半期(3Q)、10~12だったら第4四半期(4Q)、になる訳で。

日付 年度 半期 四半期 月 / 3
2020/03/01 2019 12 2 4 4
2020/04/01 2020 1 1 1 0.333333333333333
2020/05/01 2020 2 1 1 0.666666666666667
2020/06/01 2020 3 1 1 1
2020/07/01 2020 4 1 2 1.333333333333333
2020/08/01 2020 5 1 2 1.666666666666667
2020/09/01 2020 6 1 2 2
2020/10/01 2020 7 2 3 2.333333333333333
2020/11/01 2020 8 2 3 2.666666666666667
2020/12/01 2020 9 2 3 3
2021/01/01 2020 10 2 4 3.333333333333333
2021/02/01 2020 11 2 4 3.666666666666667
2021/03/01 2020 12 2 4 4
2021/04/01 2021 1 1 1 0.333333333333333

こんな感じ。

さて半期ルール(1~6を1、7~12を2にする)を求めるには、6で割ってやればよく、四半期だとしたら3で割ってやればよい。
ただ、小数点以下の値が出てきてしまうので、そこんとこを上手い事やらなければならない!

そんな時、役に立つのが**「三角関数や対数関数などの一般的な数値関数の定数と静的メソッドを提供する」Math クラスですね。
Mathクラスには、数学的な関数群を保有していて、今回は、
「指定した数以上の数のうち、最小の整数値を返す」.Ceiling メソッド**を使用します。

Math.Ceiling(0.666666666666667)は、「0.666666666666667」より以上の、最小の整数値を返すので、「1」となりますね。
Math.Ceiling(2)は、「2」より以上の、最小の整数値を返すので、「2」となりますね。

※参考:似たような関数で、**「指定した数以下の数のうち、最大の整数値を返す」Floor **メソッドがあります。
※シーリングファン(天井に取り付ける扇風機)の「Ceiling」ですね。フロアランプ(床置きのランプ)の「Floor」ですね。

という訳で、半期を得るには、
image.png
左辺:半期(Int32)
右辺:CType(Math.Ceiling(計算日付.AddMonths(-3).month / 6), Int32)

四半期を得るには、
image.png
左辺:四半期(Int32)
右辺:CType(Math.Ceiling(計算日付.AddMonths(-3).month / 3), Int32)

おわりに

いかがでした?
DateTime型はExcelシート上の日付でフィルタリング範囲に使ってみたり、先の例のように業務で管理単位とするなど、様々なシーンで扱うことが多いです。是非UiAthでのロボ開発の一助になればと思っています。

ありがとうございました!

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?