Date::Calc::check_date is C,
boolean DateCalc_check_date(Z_int year, Z_int month, Z_int day)
{
if ((year >= 1) and
(month >= 1) and (month <= 12) and
(day >= 1) and
(day <= DateCalc_Days_in_Month_[DateCalc_leap_year(year)][mont
+h]))
return(true);
return(false);
}
and it basicly uses:
boolean DateCalc_leap_year(Z_int year)
{
Z_int yy;
return( ((year AND 0x03) == 0) and
( (((yy = (Z_int) (year / 100)) * 100) != year) or
((yy AND 0x03) == 0) ) );
}
const Z_int DateCalc_Days_in_Year_[2][14] =
{
{ 0, 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365 },
{ 0, 0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335, 366 }
};
const Z_int DateCalc_Days_in_Month_[2][13] =
{
{ 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 },
{ 0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }
};
how to use (rewrite) it in perl
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.