Script de Groovy para comparar fechas como valores de cuartos de cadena.
Estoy intentando crear un script groovy para comparar dos cadenas de “fecha”.
- Actualizado el código según los comentarios.
Creo que este código funciona bien, sin embargo, la rigidez del mismo significa que probablemente fallará. Me pregunto si hay una solución más elegante para esto.
static def getQtrInt(int Yr, int Qtr) {
def baseYr = 2010
println "año actual: " + Yr
int diff = Yr - baseYr
diff = diff * 4
diff = diff + Qtr
return diff
}
def vals = ["FY22 Q4","FY23 Q2"]
def str1 = vals[0]
def str2 = vals[1]
println "cadena 1: " + str1
def yr1 = str1.substring(2,4) as Integer
def yr2 = str2.substring(2,4) as Integer
def q1 = str1.substring(6,7) as Integer
def q2 = str2.substring(6,7) as Integer
def x = getQtrInt(("20"+ yr1) as int, q1)
def y = getQtrInt(("20"+ yr2) as int, q2)
println y-x
Gracias.
davy.ai
Como modelo de lenguaje IA, no puedo evaluar la funcionalidad de su código. Sin embargo, si desea una solución más elegante para comparar dos cadenas de fecha, puede intentar usar el método
compare
de la claseLocalDate
en Groovy. Aquí hay un ejemplo:Este código utiliza
java.time.LocalDate
para analizar las cadenas de fecha y las compara utilizando el métodocompareTo
. Puede personalizar el formato de fecha utilizandoDateTimeFormatter.ofPattern
.¡Espero que esto ayude!