Bonjour J'ai une question sur l'utilisation de TimeCategory dans groovy. dans Mon projet, j'ai une méthode unique pour calculer les mois. Je veux l'ajouter à TimeCategory.Groovy étendre TimeCategory class
public Integer calcMonateAboDays(def fromDate) {
Date startDate
if (fromDate instanceof String) {
startDate = fromDate.toDate()
} else if (fromDate instanceof Date) {
startDate = fromDate
} else {
assert false: "Wrong fromDate class: " + fromDate.getClass()
}
Date endDate = null
use(TimeCategory) {
endDate = startDate + 1.month
Calendar endCalendar = Calendar.getInstance()
endCalendar.setTime(endDate)
int lastDayOfMonth = endCalendar.getActualMaximum(Calendar.DAY_OF_MONTH)
int endDayOfMonth = endCalendar.get(Calendar.DAY_OF_MONTH)
Calendar startCalendar = Calendar.getInstance()
startCalendar.setTime(startDate)
int startDayOfMonth = startCalendar.get(Calendar.DAY_OF_MONTH)
if (lastDayOfMonth != endDayOfMonth || startDayOfMonth == lastDayOfMonth) {
endDate--
}
}
return (endDate - startDate) + 1
}
Comment puis-je ajouter à la classe de TimeCategory existant à utiliser comme ceci:
Date date = new Date()
use(TimeCategory) {
System.out.print(date + 1.monateAbo)
}
Des trucs comme ceci:
TimeCategory.metaClass.getMonateAbo() {
}
travail ne marche pas :(