j_k
asked on
Calendar Calculator
I am in need of some sort of calendar calulator. From within a shell script i set a variable to a date by using the date command. I then need to be able to set another variable to a date that is 2 weeks ( 14 days) later. I will then compare this new date to the current date to determine if this item is overdue. I would then issue some kind of email message to the particular party. Is there such a tool available, or is it possible all within shell scripts?
ASKER
Hello Ozo,
Sorry, The second date variable would have to be calculated from value of the 1st date variable that was contained in a text file. Example: something like this!
The data file would look something like this:
submittal1|04/20/98|
submittal2|04/24/98|
submittal3|04/28/98|
... and so on ....
and the script would do something like this:
for each LINE in data file
SUBMITTAL=??? (awk on LINE getting 1st column)
ENTERED_DATE=04/20/98 (awk on LINE getting 2nd column)
RESPOND_DATE=??? (a calculated date 2 weeks after the entered_date)
if (today's date) is > respond_date then
send email notifying user that the submittal $SUBMITTAL
that was due on $RESPOND_DATE is overdue
Hope this helps
JAK
Sorry, The second date variable would have to be calculated from value of the 1st date variable that was contained in a text file. Example: something like this!
The data file would look something like this:
submittal1|04/20/98|
submittal2|04/24/98|
submittal3|04/28/98|
... and so on ....
and the script would do something like this:
for each LINE in data file
SUBMITTAL=??? (awk on LINE getting 1st column)
ENTERED_DATE=04/20/98 (awk on LINE getting 2nd column)
RESPOND_DATE=??? (a calculated date 2 weeks after the entered_date)
if (today's date) is > respond_date then
send email notifying user that the submittal $SUBMITTAL
that was due on $RESPOND_DATE is overdue
Hope this helps
JAK
I could suggest an answer, but I'm afraid you may have a problem with it about 600 days later...
ASKER
Thats Ok, This program may be need then. But for now it
sure would be helpful, in the ways we are doing things now!.
Is this a good place for perl?
sure would be helpful, in the ways we are doing things now!.
Is this a good place for perl?
Yes, using Time::Local::timelocal in perl would have been one of my suggestions.
(Setting a large time zone offset or Zeller's congruence would have been the others)
I have to go for now, but I'll try to be back later if you need more specific help.
(Setting a large time zone offset or Zeller's congruence would have been the others)
I have to go for now, but I'll try to be back later if you need more specific help.
ASKER
Yes, please expand on the perl solution.
use Time::Local;
$now = time;
while( <> ){
($ss,$mm,$dd,$yy)=split('[ /|]');
$due = timelocal(0,0,6,$dd,$mm-1, $yy)+60*60 *24*14;
next if $due > $now;
($date=localtime($due))=~s / \d\d:\d\d:\d\d/,/;
open(M,"|/usr/lib/sendmail -t") || warn $!;
print M "To: $user\nSubject: overdue\n\nsubmittal $ss that was due on $date is overdue\n";
close M || warn $!;
}
$now = time;
while( <> ){
($ss,$mm,$dd,$yy)=split('[
$due = timelocal(0,0,6,$dd,$mm-1,
next if $due > $now;
($date=localtime($due))=~s
open(M,"|/usr/lib/sendmail
print M "To: $user\nSubject: overdue\n\nsubmittal $ss that was due on $date is overdue\n";
close M || warn $!;
}
ASKER
Thanks again, just what i needed.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
If you set a variable to the current date, and another variable to a date 14 days later, then don't you already know how they compare?