By writing a program to do it.
Show us what you've done, and we'll be glad to help.
--
Keith Thompson (The_Other_Keith) (e-mail address removed) <
http://www.ghoti.net/~kst>
Nokia
"We must do something. This is something. Therefore, we must do this."
-- Antony Jay and Jonathan Lynn, "Yes Minister"
Try to read crontab file , build run schedule by month.
/* gcc str_split.c -o str_split */
#include <stdio.h>
#include <io.h>
#include <fcntl.h>
#define MAX_FIELD_SIZE 1023
typedef unsigned char bool;
enum { UNSELECTED=0, COLUMN, FIELD } ModeType;
bool field_list[MAX_FIELD_SIZE]; /* list of selected fields */
bool SupressFlag = 0; /* supress lines without delimiter symbol */
// num ModeType mode = UNSELECTED; /* scan mode: column vs. field */
unsigned char delimiter = '\t'; /* delimiter symbol for field
separation */
int Set_list();
void main (int argc, char **argv)
{
int error = 0;
char *p;
p = "0-4,10,20,40-45";
printf("main() %-30s\n",p); // p only
error = Set_list(p); // p only
printf("error = %3d\n", error);
printf("# %-30s\n",field_list[1]);
}
/*
* Set_list - Parse field argument list and set selected fields
*/
int Set_list (char *list)
{
bool setFieldFlag = 0; /* flag to indicate if any fields were set */
bool contFlag = 0; /* flag to continue setting fields for a range (i-
j) */
unsigned prevField = 0; /* previous field selected */
unsigned field; /* field position */
while (*list)
{
switch (*list) {
case '-':
if (contFlag) return(1);
contFlag = 1; /* turn on continue flag */
list++;
break;
case ',':
contFlag = 0;
list++;
break;
default:
field = 0;
while (*list >= '0' && *list <= '9')
{
field *= 10;
field += *list - '0';
++list;
}
if (field == 0) return(1);
else if (field > MAX_FIELD_SIZE) return(2);
--field; /* decrement field # for array index */
if (!contFlag) prevField = field;
else contFlag = 0;
while (prevField <= field)
{
field_list[prevField++] = 1;
}
setFieldFlag = 1; /* set field selected flag
*/
} /* end switch */
} /* end while */
if (contFlag)
{
while (prevField <= MAX_FIELD_SIZE)
{
field_list[prevField++] = 1;
}
}
if (setFieldFlag == 0) return 1; /* error - nothing selected
*/
else return 0; /* okay */
} /* end Set_list */