Ik ben bezig met een licentie scriptje dat voor clienten een licentie maakt. Na een aantal uurtjes ploeteren op internet, het lezen van perl manuals en programmer guides heb ik het volgende geschreven (zie hieronder)
het laatste stukje code komt van een of andere voorbeeld site (was net even te ingewikkeld)
Mijn vraag:
Hoe verander ik de code zodat ik een licentie kan maken die niet in 1900 + jaren verloopt maar 2 jaar later?
P.S hiervoor is geen manual beschikbaar, ik heb het afgelopen uur zitten zoeken en kom er niet uit, mijn laatste beroep hier op GOT!
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
| sub gen_lic {
my($script_url)=@_;
$script_url=~s{http://} {};
$script_url=~/^\w*\.(.{4})/;
my($part1)="$dbcode$1";
$lic_date=&conv_date(&make_date(localtime));
$part2=$lic_date;
my($le)=length($part2);
$part2=substr($part2,$length-3,3);
open LICFILE,">$datapath$dbcode"."license".$tmplext ||
&CgiDie("00999","Open File","Couldn't create registration file");
$lictext=crypt($part1."ED",$part2);
print LICFILE unpack "H50",$lictext;
close LICFILE;
}
sub conv_date {
local ($md)=@_;
local ($mon,$day,$year)=split (m!/!,$md);
local($julian_day) = &jday($mon,$day,$year);
return $julian_day;
}
sub make_date {
my($A,$B,$C,$mday,$mon,$year)=localtime();
$year=$year+1900;
$mon++; # add 1 to month because it starts at 0
local($mdate)=$mon."/".$mday."/".$year;
return $mdate;
}
sub jday {
# Usage: $julian_day = &jday($month,$day,$year)
my($m,$d,$y) = @_;
my($ya,$c);
$y = (localtime(time))[5] + 1900 if ($y eq '');
if ($m > 2) {
$m -= 3;
} else {
$m += 9;
--$y;
}
$c = int($y/100);
$ya = $y - (100 * $c);
$jd = int((146097 * $c) / 4) + int((1461 * $ya) / 4) +int((153 * $m + 2) / 5) + $d + 1721119;
return $jd;
}
1; |
het laatste stukje code komt van een of andere voorbeeld site (was net even te ingewikkeld)
Mijn vraag:
Hoe verander ik de code zodat ik een licentie kan maken die niet in 1900 + jaren verloopt maar 2 jaar later?
P.S hiervoor is geen manual beschikbaar, ik heb het afgelopen uur zitten zoeken en kom er niet uit, mijn laatste beroep hier op GOT!