1

したがって、年と月をこの形式 yyyyMM で表示する spinEdit があります。RegEx を使用して値をその形式にマスクしていますが、たとえば 201212 から 201301 にインクリメントしようとすると失敗し、20121 が表示されます。使用している RegEx は次のようになります。

([0-9][0-9][0-9][0-9])(0[1-9])|(1[0-2])

問題は、値をインクリメント (月に 1 を追加) しても、月が 12 のときに年フィールドがインクリメントされないことです。同じことが逆に発生し、値を減らしても (マイナス 1 か月)、年が減らない場合、201301 - 1 では 2013 年になります。RegEx だけを使用してこれを修正する方法はありますか?

4

2 に答える 2

0

可能だと思いますが、完全な正規表現ソリューションではありません。Linuxとbashを利用できるようにする必要があります(個人的には、bash veで日付関数を見つけます)ファイル名で日付形式(文字列)を取得し、それを日付と比較する必要がありましたスクリプトで。以下はコード スニペットです。

#!/bin/bash

#yyyymm you got after regex
inputdate = 201307 
#value you want to subtract
x = 8
#outputdate should return you 201211    
outputdate = $(date -d "$inputdate01 -$x month" +"%Y%m") 
于 2013-08-21T14:51:52.183 に答える
0

私は方法があるかもしれないと信じていますが、実際の状況ではその価値のために複雑ではありません. したがって、物事を単純に保つことは不可能です。

于 2013-09-04T06:22:54.360 に答える