es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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.

Tags:  , ,

Answer

  1. Avatar for 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 clase LocalDate en Groovy. Aquí hay un ejemplo:

    import java.time.LocalDate
    import java.time.format.DateTimeFormatter
    
    def date1 = "2022-10-31"
    def date2 = "2023-06-30"
    
    def formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd")
    def localDate1 = LocalDate.parse(date1, formatter)
    def localDate2 = LocalDate.parse(date2, formatter)
    
    println localDate2.compareTo(localDate1)
    

    Este código utiliza java.time.LocalDate para analizar las cadenas de fecha y las compara utilizando el método compareTo. Puede personalizar el formato de fecha utilizando DateTimeFormatter.ofPattern.

    ¡Espero que esto ayude!

Comments are closed.