Sponsored Content
Full Discussion: Difference in date
Top Forums Shell Programming and Scripting Difference in date Post 302477141 by rbatte1 on Friday 3rd of December 2010 10:39:43 AM
Old 12-03-2010
Difference in date

Dear all,

I fancy that I'm pretty competent in ksh, but I have someone on HP-UX wanting me to script up a simple interface to handle user alterations rather than giving them high privileges to run up SAM. This is all fairly straightforward, but I'm stuck on an epoch date issue.

When we have a short-term contractor, we have to set an expiry date on the account. Looking and the manual pages for usermod it gives me the syntax and I have tested it all out just fine, but the parameters it requires is for number of days in the future that the account will expire, yet my operative wants to key in a date.

I need to be able to get the difference in days between today and the date given - a simple current_date minus target_date in format yyyymmdd will tell me if the target date is in the past, but how can I do this to count the days in between?

Preference is for ksh, but I guess perl may be acceptable, especially as I found a lovely routine on here for going the other way that I have embedded in a ksh script:-
Code:
perl -e 'print scalar localtime $ARGV[0],"\n" ' $seconds_since_epoch

I've seen various suggestions, but all for some wild perl or C but I'd prefer to understand what the code is saying because someone will no doubt ask me later on! There is a neat suggestion of
Code:
perl -e 'use Time::Local; print timelocal("00","00","00","01","01","2000"),"\n";'

which I can get to work just fine on AIX, but HP-UX gives me the response:-
Quote:
Can't locate Time/Local.pm in @INC (@INC contains: /opt/perl5/lib/5.00502/PA-RISC1.1 /opt/perl5/lib/5.00502 /opt/perl5/lib/site_perl/5.005/PA-RISC1.1 /opt/perl5/lib/site_perl/5.005 .) at -e line 1.
BEGIN failed--compilation aborted at -e line 1
I think that this means that there is a library not installed or in the path. I also don't really know perl at all, but need to tweak it to accept a variable as in the first example.

Of course, the plan is to have a little stub of code that I can shovel my date into (time will just be midnight to make it easy) and get "seconds-from-epoch". After that, I can take one from the other and convert back with the perl above.

It's a shame that date +%s is not an option.

I had considered moving the timezone forwards and counting how many days to step, but it's hardly good code to do it like that, kicking up stacks more processes and possibly taking a while to run if the date in question is perhaps 18 months away.

Any suggestions?


Many thanks, in advance,
Robin
 

10 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

date difference

Hi...I need some help with a date script. I need to allow the user to enter the month (alpha) day (int) and year (YYYY) and count the difference in number of days since Jan 1, 1952 to the users date. I've been messing with this for about 10 hours and I think I'm just making the script worse =( ... (1 Reply)
Discussion started by: mtnbaby
1 Replies

2. UNIX for Dummies Questions & Answers

date difference

Hi Can any buddy give mi a simple program or logic or command which will get difference between two dates ex:diff between 20051008 2005908 is 24hours 12 min 2 sec regards (1 Reply)
Discussion started by: rajuMBT
1 Replies

3. Shell Programming and Scripting

date difference

if there are two date one is entered by user and another is system date than how can we finds day difference between these two date try to make it within 4 lines (2 Replies)
Discussion started by: piyush_movadiya
2 Replies

4. Linux

date difference

hi, i have 2 dates in the form: '20080315120030' and '20080310140030'. i.e. YYYYMMDDHHMMSS. i need a way of getting the difference between them using shell script. any thoughts? (14 Replies)
Discussion started by: muay_tb
14 Replies

5. Shell Programming and Scripting

difference in date

Hi All! I would like to know the time difference between two dates which are in same format... $ date -r abc Thu Oct 29 09:40:37 EDT 2009 $ date Fri Oct 30 02:07:03 EDT 2009 i would like to find the diff between these two dates in hours..please help..:) Regards, Kiran (3 Replies)
Discussion started by: dddkiran
3 Replies

6. Homework & Coursework Questions

help with the date difference

1. The problem statement, all variables and given/known data: The problem i have is that i probably make a few mistake here in the code but don't know what it is and i try to get the date difference but don't know where to add the days_in_month function 2. Relevant commands, code,... (1 Reply)
Discussion started by: mgyeah
1 Replies

7. Programming

Date difference

I tried the below code to find difference between two dates. It works fine if the day of the month is 2-digit number. But it fails when we have a single-digit day of month(ex:1-9). my code is as below. please help me soon. #!/usr/bin/perl -w use strict; use Time::Local; ... (2 Replies)
Discussion started by: anandrec
2 Replies

8. Shell Programming and Scripting

Date difference

HI All , i need a bash script to find the number of days between two dates . Format YYYY-MM-DD THanks, Neil (1 Reply)
Discussion started by: nevil
1 Replies

9. AIX

Time Difference between date and date -u

Hi Everyone, We are having an issue with date and date -u in our AIX Systems. We have checked environment variable TZ and /etc/environment and however, we could not rectify the difference. >date Thu Mar 19 22:31:40 IST 2015 >date -u Thu Mar 19 17:01:44 GMT 2015 Any clue... (5 Replies)
Discussion started by: madhav.kunapa
5 Replies

10. Shell Programming and Scripting

Difference between two date

Hi, I created a script for finding the duration of a job using the start and end time of the job. But the command doesnt calculate correct value if the duration is more than 24 hours. Any help would be really good . cat test1 --- start time 03/27/15 17:41:00 03/24/15 11:58:04 03/23/15... (3 Replies)
Discussion started by: rogerben
3 Replies
CHAGE(1)						      General Commands Manual							  CHAGE(1)

NAME
chage - change user password expiry information SYNOPSIS
chage [-m mindays] [-M maxdays] [-d lastday] [-I inactive] [-E expiredate] [-W warndays] user chage -l user DESCRIPTION
chage changes the number of days between password changes and the date of the last password change. This information is used by the system to determine when a user must change her password. The chage command is restricted to the root user, except for the -l option, which may be used by an unprivileged user to determine when her password or account is due to expire. With the -m option, the value of mindays is the minimum number of days between password changes. A value of zero for this field indicates that the user may change her password at any time. With the -M option, the value of maxdays is the maximum number of days during which a password is valid. When maxdays plus lastday is less than the current day, the user will be required to change her password before being able to use her account. This occurance can be planned for in advance by use of the -W option, which provides the user with advance warning. With the -d option, the value of lastday is the number of days since January 1st, 1970 when the password was last changed. The date may also be expressed in the format YYYY-MM-DD (or the format more commonly used in your area). The -E option is used to set a date on which the user's account will no longer be accessible. The expiredate option is the number of days since January 1, 1970 on which the accounted is locked. The date may also be expressed in the format YYYY-MM-DD (or the format more com- monly used in your area). A user whose account is locked must contact the system administrator before being able to use the system again. The -I option is used to set the number of days of inactivity after a password has expired before the account is locked. The inactive option is the number of days of inactivity. A value of 0 disables this feature. A user whose account is locked must contact the system administrator before being able to use the system again. The -W option is used to set the number of days of warning before a password change is required. The warndays option is the number of days prior to the password expiring that a user will be warned her password is about to expire. If none of the options are selected, chage operates in an interactive fashion, prompting the user with the current values for all of the fields. Enter the new value to change the field, or leave the line blank to use the current value. The current value is displayed between a pair of [ ] marks. NOTE
The chage program requires shadow password file to be available. Its functionality is not available when passwords are stored in the passwd file. FILES
/etc/passwd - user account information /etc/shadow - shadow user account information SEE ALSO
passwd(5), shadow(5) AUTHOR
Julianne Frances Haugh <jockgrrl@ix.netcom.com> CHAGE(1)
All times are GMT -4. The time now is 10:14 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy