私のスクリプトはファイルから文字列を読み取り、それを評価して TimeCategory 内の TimeDuration として機能します。文字列が「-」で始まる場合、例外がスローされます。
私の削減されたスクリプト:
import groovy.time.TimeCategory;
String string = "-1.day"
Date now = new Date()
use(TimeCategory)
{
def x = new Date() + evaluate(string)
println x
}
スロー:
groovy.lang.MissingMethodException: No signature of method: groovy.time.Duration.negative() is applicable for argument types: () values: []
Possible solutions: notify()
現時点で私の解決策は次のとおりです。
import groovy.time.TimeCategory;
String string = "-1.day"
Date now = new Date()
use(TimeCategory)
{
def x
if(string.startsWith("-"))
{
string = string.substring(1)
x = now - evaluate(string)
}
else
{
x = now + evaluate(string)
}
println x
}
ただし、次のことができます。でも…好きじゃない。結果についてはわかりません(別の時間単位で機能しますか?「-1.day + 2.hours-3.minutes」):
String prestring = "-1.day"
String string = "0.day$prestring"
助言がありますか?