指定した日が当月の第何週かを取得したいです。

指定した日が当月の第何週かを取得したいです。
アクティビティの「代入」を使う場合に下記で合っているでしょうか?
※日曜始まりです。

DatePart(“WW”, [Now.Date.ToString], vbSunday) - DatePart(“WW”, DateSerial(Year([Now.Date.ToString]), Month([Now.Date.ToString]), 1), vbSunday) + 1

ご教示いただけると助かります。
よろしくお願いいたします。

試してみて、如何でした?

「かっこ付きの識別子の終わりに ‘]’ がありません」
というのが3行表示されエラーになっています。。

かなり面倒。。。考え方次第ですけどね。

1)その指定した日の一日の日付を取得。
2)その一日の曜日を取得し、一日から引く(一日の存在する週の日曜日の日付が算出される)
3)指定した日と一日の存在する週の日曜日の日付の差を求める。
4)その差を7で割り、切り捨てた値に2を足す(一日の存在する週の日曜日の日付が-1か、0だから)

1)
一日 = New DateTime(計算日.Year, 計算日.Month, 1)

2)
一日の週の日曜日 = 一日.AddDays(一日.DayOfWeek.GetHashCode * -1)

3)
日差 = Ctype((計算日 - 一日の週の日曜日).TotalDays, Int32)

4)
週数 = CInt(Math.Floor( (日差 - 7) / 7 ) + 2)

かなり初心者のため申し訳ありません。。。
これをお聞きした背景が、
ツール上のカレンダーを開始日、終了日をそれぞれ下記のようにクリックしたいです。
開始日:前日
終了日:今日

代入で「前日」「今日」を設定したところ、UiParth上で認識してくれる日もあれば、日によってカレンダー上の行数を見てしまって上手く認識してくれない状態です。

※セレクターを見るとこんな感じです。29日の場合。

そのためその日が第何週かを予め取得すべきなのか?と考えております。

初心者のためどういった設定がいいのか分からず、
アドバイスをいただけると幸いです。

セレクタが消えてしまっていますが、セレクタの可変値の傾向をつかんで、対策していきましょう。。。

※セレクタは、キャプチャとって、ペイント辺りで必要な部分をコピーして、この返信した際にペーストすると貼り付けられますよ。是非!

image

セレクタ、失礼しました。。。

29日一つだと心もとないので、一週間前の22日はどうなっているでしょう?

aaname=22 tableRow=5

かしら。。。

1日はどうなているでしょう?

aaname=1 tableRow=2

かしら???

となると、月初めからの週数+1をTableRowに設定して、あとはその日をaanameに設定でしょうかねぇ。

ご返信ありがとうございます。><
なぜか5/22は「tableRow」が入らないんです。。

・5/22
image

・5/1
image

失礼しました、返信でお返しできてませんでした。
先程別途5/22、5/1パターンを提示させていただいておりますので
お手数ですがご意見いただけると幸甚です。

となれば、TableRow部分は指定しないようにしてみるとか。。。

セレクターにて「tableRow」は指定しないようにしてみましたが、カレンダーでまったく反応しません。。。
現状は下記のようになっております。。。。

<代入>
※dtYesterday=today.AddDays(-1).ToString(“dd”)
※dtToday=Now.ToString(“dd”)

image
image

あとすみません、
翌月だと「→」でカレンダーをズラす必要があるのですが、これって自動でそもそも対応可能でしょうか?

image

「⇒」のエレメントを対象に、クリックアクティビティで対応できると思います。

お!"dd"だと、頭に”0”が付く!?
と、シングルクォートも必要ですね。

頭に、、、というとどういった書き方になりますか?><
いろいろすみません。。。。

一日が"1"ではなく、"01"になる。。。

ならなかったっけ?

「“d”」にしても、やはり仕様が日付によって行数設定されているせいか、認識してくれません。。

こんにちは

なりますよ。

「“d”」にしても、やはり仕様が日付によって行数設定されているせいか、認識してくれません。。

now.Day.ToString()

をお試しください。

1 Like

now.ToString(“d”)だと、別の値が取れてしまった。。。

Yoichiさんの方法でないといけませんね。

ToString()のページをみると、私がアドバイスでした"d"はぜんぜん違う文字列になっていました。

ごめんなさい。