201806とかの月をその入力した前月と認識してType intoする方法

studio

#1

例えば、7月5日にロボットを動かすときに、前月の末ということで、201806と認識してtype into する方法はありますでしょうか?

2月末→201801
3月末→201802
上記のように、いちいち、人間がtype intoで入力しなくても済むのが一番の効率化だと思うのですが。


#2
(New DateTime(DateTime.Now.Year, DateTime.Now.Month, 1).AddDays(-1)).ToString("yyyyMM")

を試してみてください。
(今年・今月の1日を求め、その前日を計算した上で、年月だけの形に整形しています)


#3

@Honoka様
さっそくご教授頂いた通りに、試してみます。

ありがとうございます。
このプログラムは、#NETですかね?


#4

このプログラムは、#NETですかね?

そうですね。VB.NETの書式です。
現状、日付関連で少し複雑な処理になると、コード(プログラム)を書かずにやる方法はなかったと思います。


#5

すみません。
yyyy/mm/dd形式で、
前月の末日の場合
日付の表示とその加算について
来月1日の場合
例えば本日実行したら、2018/08/01となるようにする場合どのようにすべきでしょうか?


#6
  (New DateTime(DateTime.Now.Year, DateTime.Now.Month, 1).AddMonths(1)).ToString("yyyyMMdd")

でどうでしょうか。

「今月の」月初日であれば、

  (New DateTime(DateTime.Now.Year, DateTime.Now.Month, 1))

で求められます(年と月を現在値、日付だけ1にしてDateTime型変数を作っています)

先月末なら、そこにAddDays(-1)
来月頭なら、そこにAddMonths(1)
今月末は、来月頭からAddDays(-1)
みたいに考えるとわかりやすいでしょうか。


#7

ありがとうございます。

教えていただいた通りに記載すると、以下のようなエラーが表示されます。
初歩的な質問ですみません。
エラー.xls (96 KB)


#8

書式指定(yyyy/MM/dd)の前のダブルクォーテーションが全角になっているように見えます。