Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
Solved

# Days

Posted on 1998-12-07
Medium Priority
192 Views
I want to make a program to count a total days, examples i saved 01-31-98 (mm/dd/yy) then if today is 01-01-99 (mm/dd/yy) the program count a total days from 01-31-98. so the output from the program will be 1 days.
others examples, i save 02-01-99 then i input 03-01-99 then the outpun must be 28 days.. the output must be in days!!
Thanks
0
Question by:ichen
[X]
###### Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

• Help others & share knowledge
• Earn cash & points
• Learn & ask questions
• 2

LVL 1

Accepted Solution

flivauda earned 300 total points
ID: 1206783
#!/usr/local/bin/perl

\$days = &days_since_1990(1998, 3, 1) -  &days_since_1990(1998, 2, 1);
print "Days: \$days\n";

sub leap_year
{
local(\$year); \$year = shift;
local(\$x);
\$x = (((\$year % 4 == 0) && (\$year % 100 != 0)) || (\$year % 400 ==0));
return \$x;
}

sub days_in_year
{
local(\$year); \$year = shift;
return (&leap_year(\$year) ? 366 : 365);
}

sub days_in_month
{
local(\$year); \$year = shift;
local(\$month); \$month = shift;
@days_per_month = (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);

if ((\$month<1) || (\$month>12))
{

\$days=0;
}
else
{
\$days = \$days_per_month[\$month - 1];
if (&leap_year(\$year) && (\$month == 2))
{
\$days++;
}
}
return \$days;
}

sub day_of_year
{
\$year = shift;
\$month = shift;
\$day = shift;
local(\$x);
local(\$day_count);

\$day_count=0;
for (\$x=1;\$x<\$month;\$x++)
{
\$day_count += &days_in_month(\$year, \$x);
}
return (\$day_count + \$day);
}

sub days_since_1990
{
local(\$year); \$year = shift;
local(\$month); \$month = shift;
local(\$day); \$day = shift;
local(\$x);
local(\$day_count);

\$day_count=0;

if (\$year<1990)
{
return 0;
}

for (\$x=1990;\$x<\$year;\$x++)
{
\$day_count += &days_in_year(\$x);
}
\$day_count += &day_of_year(\$year, \$month, \$day) - 1;

return \$day_count;
}

0

LVL 84

Expert Comment

ID: 1206784
sub days_since_1990 { use Time::Local; (timegm(0,0,0,\$_[2],\$_[1]-1,\$_[0]-1900)-timegm(0,0,0,1,1-1,1990-1900)) / (60*60*24) }
0

LVL 1

Expert Comment

ID: 1206785
I just ported over my old C code, your is a little shorter =)
0

## Featured Post

Question has a verified solution.

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

A year or so back I was asked to have a play with MongoDB; within half an hour I had downloaded (http://www.mongodb.org/downloads),  installed and started the daemon, and had a console window open. After an hour or two of playing at the command …
In the distant past (last year) I hacked together a little toy that would allow a couple of Manager types to query, preview, and extract data from a number of MongoDB instances, to their tool of choice: Excel (http://dilbert.com/strips/comic/2007-08…
Explain concepts important to validation of email addresses with regular expressions. Applies to most languages/tools that uses regular expressions. Consider email address RFCs: Look at HTML5 form input element (with type=email) regex pattern: T…
Six Sigma Control Plans
###### Suggested Courses
Course of the Month9 days, 2 hours left to enroll

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

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