Solved

Perl using time() fails

Posted on 2013-01-04
6
441 Views
Last Modified: 2013-01-24
I am getting these erros... Trying simple code to work with time

I don't know what is wrong... I need to do simple date math code

./dateExample.pl: line 6: syntax error near unexpected token `('
./dateExample.pl: line 6: `my $time = time();'


Code line 6  is
my $time = time();


my code
===============


#/app/cawily/support/perl/bin/perl -w



my $time = time();


my $future_time = $time + (45 * 24 * 60 *60);
my ($second, $minute, $hour, $day, $month, $year, $dayOfWeek, $dayOfYear, $daylightSavings) = localtime($time);
my ($fsecond, $fminute, $fhour, $fday, $fmonth, $fyear, $fdayOfWeek, $fdayOfYear, $fdaylightSavings) = localtime($future_time);

$year += 1900;
$fyear += 1900;

print "$month/$day/$year\n";
print "$fmonth/$fday/$year\n";
0
Comment
Question by:eluka68
6 Comments
 

Author Comment

by:eluka68
ID: 38745743
I busted
THe first line should have been
#!/app/cawily/support/perl/bin/perl


But let me modify the Question.... I need help getting to know what day of the week it is (MON, Tuesday and so forth)
0
 
LVL 10

Accepted Solution

by:
tdlewis earned 250 total points
ID: 38745835
Your $dayOfWeek variable tells you what day of the week it is. Here is a slightly modified version of your code that adjusts for zero-based months.
#!/app/cawily/support/perl/bin/perl -w

my $time = time();

my $future_time = $time + (45 * 24 * 60 *60);
my ($second, $minute, $hour, $day, $month, $year, $dayOfWeek, $dayOfYear, $daylightSavings) = localtime($time);
my ($fsecond, $fminute, $fhour, $fday, $fmonth, $fyear, $fdayOfWeek, $fdayOfYear, $fdaylightSavings) = localtime($future_time);

$year += 1900;
$fyear += 1900;

$month++;
$fmonth++;

my @days = ("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat");

print "$days[$dayOfWeek] $month/$day/$year\n";
print "$days[$fdayOfWeek] $fmonth/$fday/$year\n";

Open in new window

0
 
LVL 48

Assisted Solution

by:Tintin
Tintin earned 250 total points
ID: 38745842
Much easier to do

#!/app/cawily/support/perl/bin/perl -w
use POSIX 'strftime';
my $day = strftime '%a',localtime;
print "day is $day\n";

Open in new window

0
Master Your Team's Linux and Cloud Stack

Come see why top tech companies like Mailchimp and Media Temple use Linux Academy to build their employee training programs.

 
LVL 77

Expert Comment

by:arnold
ID: 38747002
Sunday is 0.
You can define an array ahead of time and the
@dayofweek=("Sun","Mon",);
Etc.
Doing the same for months will reduce the overhead of including/referencing other functions.
0
 
LVL 51

Expert Comment

by:ahoffmann
ID: 38766121
@d=(qw(So Mo Tu We Th Fr Sa));@t=localtime;print $d[$t[6]];
# to be improved in many ways
0
 
LVL 84

Expert Comment

by:ozo
ID: 38769533
print (qw(Su Mo Tu We Th Fr Sa)[(localtime)[6]]);
0

Featured Post

Efficient way to get backups off site to Azure

This user guide provides instructions on how to deploy and configure both a StoneFly Scale Out NAS Enterprise Cloud Drive virtual machine and Veeam Cloud Connect in the Microsoft Azure Cloud.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

There are many situations when we need to display the data in sorted order. For example: Student details by name or by rank or by total marks etc. If you are working on data driven based projects then you will use sorting techniques very frequently.…
This article will show, step by step, how to integrate R code into a R Sweave document
Learn how to find files with the shell using the find and locate commands. Use locate to find a needle in a haystack.: With locate, check if the file still exists.: Use find to get the actual location of the file.:
In this fourth video of the Xpdf series, we discuss and demonstrate the PDFinfo utility, which retrieves the contents of a PDF's Info Dictionary, as well as some other information, including the page count. We show how to isolate the page count in a…

821 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question