Convert cron expression into nice description strings? Is there a library for JAVA and Objective-C? [closed]
Asked Answered
L

3

13

I am looking for a parser that converts a cron expression like 45 17 7 6 * * into Every year, on June 7th at 17:45 The parser should be adjustable to other languages. German for the first step.

Is there a library for a

  • JAVA based Android project
  • Objective-C based Iphone project.

See here for the usecase.

Lovato answered 17/12, 2010 at 9:46 Comment(3)
sounds a little like a "do my work for me" question... Try removing things like "I need a...", "we need it for...", "it needs to be..." and try replacing them with things like "I am looking for..."Sarcasm
Thx! Sorry, I'm forgetting my "social" english. I <need> vocation in an english speaking country! ;) But still, I dont want to reinvent the wheel. Therefore I'm looking for already developed and tested existing solutions for my problems on this platform.Lovato
possible duplicate of Cron to human readable stringNightmare
F
10
cronTrigger.getExpressionSummary()

Example:

    CronTrigger t = new CronTrigger();
    t.setCronExpression("0 30 10-13 ? * WED,FRI");
    System.out.println(""+t.getExpressionSummary());

Output:

seconds: 0
minutes: 30
hours: 10,11,12,13
daysOfMonth: ?
months: *
daysOfWeek: 4,6
lastdayOfWeek: false
nearestWeekday: false
NthDayOfWeek: 0
lastdayOfMonth: false
years: *
Frangos answered 17/12, 2010 at 9:52 Comment(8)
Ok, that seems to be kind of a dump for the developer. Thx, for showing me the class which is a good way to hold the string as object. I'm investigating there a little more. However, I can't present this dump to an Android user.Lovato
I can't present this dump to an Android user. didn't get this point, you want a lib specific to android ?Frangos
No. But imagine you see this dump on a small smartphone screen.Lovato
You can accommodate this dump scrollable table view, I don't know much about andriod programming otherwise I would have suggested you the componentFrangos
My designer is going to kill me if I do that ;) This output is not human readable or at least "customer readable", "designer readable" ;)Lovato
Naah.. you can customize this output so that even an illiterate can understand i guess :)Frangos
@JigarJoshi How to convert these to timesInMillis?!Lucan
quartz doesn't support millisecond in cron expressionFrangos
I
4

You may find cron-utils useful for this task, since provides human readable descriptions in various languages and does not require a fully fledged scheduler to provide them. Supports multiple cron formats. Below a code snippet from the docs:

//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"
Indigestible answered 20/10, 2015 at 9:35 Comment(0)
S
1

In Java, have a look into cron4j http://www.sauronsoftware.it/projects/cron4j/

You will find the parser you need but then you have to write your code to print the string as you need it. Start by creating a SchedulingPattern object:

new SchedulingPattern("0 30 10-13 ? * 1,2,5")
Swamper answered 16/3, 2011 at 0:25 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.