Преобразовать выражение cron в красивые строки описания? Есть ли библиотека для JAVA и Objective-C?
Я ищу парсер, который преобразует выражение cron как 45 17 7 6 * *
Каждый год, 7 июня в 17:45. Парсер должен быть настроен на другие языки. Немецкий за первый шаг.
Есть ли библиотека для
- Android-проект на основе JAVA
- Проект Iphone на базе Objective-C.
Смотрите здесь для использования.
3 ответа
cronTrigger.getExpressionSummary()
Пример:
CronTrigger t = new CronTrigger();
t.setCronExpression("0 30 10-13 ? * WED,FRI");
System.out.println(""+t.getExpressionSummary());
Выход:
seconds: 0
minutes: 30
hours: 10,11,12,13
daysOfMonth: ?
months: *
daysOfWeek: 4,6
lastdayOfWeek: false
nearestWeekday: false
NthDayOfWeek: 0
lastdayOfMonth: false
years: *
Вы можете найти cron-utils полезными для этой задачи, поскольку предоставляет удобочитаемые описания на разных языках и не требует полноценного планировщика для их предоставления. Поддерживает несколько форматов cron. Ниже приведен фрагмент кода из документов:
//create a descriptor for a specific Locale
CronDescriptor descriptor = CronDescriptor.instance(Locale.UK);
//parse some expression and ask descriptor for description
String description = descriptor.describe(parser.parse("*/45 * * * * *"));
//description will be: "every 45 seconds"
В Java загляните в cron4j http://www.sauronsoftware.it/projects/cron4j/
Вы найдете анализатор, который вам нужен, но затем вы должны написать свой код, чтобы вывести строку, как вам нужно. Начните с создания объекта SchedulingPattern:
new SchedulingPattern("0 30 10-13 ? * 1,2,5")