2010-12-06 18 views

Répondre

14

Vous pouvez vérifier org.quartz.CronExpression Il a une méthode nommée getNextValidTimeAfter que vous pouvez utiliser.

+0

Merci Saugata, il a aidé et a résolu le problème :) – Unicorn

5

Si vous utilisez Spring vous pouvez utiliser:

CronTrigger trigger = new CronTrigger(cron); 
TriggerContext context = new TriggerContext() { 

public Date lastScheduledExecutionTime() { 
    return null; 
} 

public Date lastActualExecutionTime() { 
    return null; 
} 

public Date lastCompletionTime() { 
    return null; 
} 
}; 
return trigger.nextExecutionTime(context); 
5

est ici une alternative similaire à CronExpression de quartz, mais sans avoir à ajouter un programmateur à part entière à votre projet: cron-utils

Vous pouvez obtenir la date dont vous avez besoin avec ce qui suit:

//Get date for next execution 
DateTime now = DateTime.now(); 
CronDefinition cronDefinition = CronDefinitionBuilder.instanceDefinitionFor(QUARTZ); 
CronParser parser = new CronParser(cronDefinition); 
ExecutionTime executionTime = ExecutionTime.forCron(parser.parse("* * * * * * *")); 
DateTime nextExecution = executionTime.nextExecution(now)); 

Selon la description officielle, cron-utils est:

Une bibliothèque Java pour analyser, valider, migrer des fichiers cron et obtenir des descriptions lisibles par l'utilisateur. Le projet suit la Convention sur la gestion des versions sémantiques et utilise la licence Apache 2.0.