--- a/t/f016.t
+++ b/t/f016.t
@@ -6,30 +6,32 @@
 
 BEGIN { $Date::Calc::XS_DISABLE = $Date::Calc::XS_DISABLE = 1; }
 
-use Date::Calc qw( Decode_Date_EU Decode_Date_US );
+use Date::Calc qw( Decode_Date_EU Decode_Date_US Moving_Window );
 
 # ======================================================================
 #   ($year,$mm,$dd) = Decode_Date_EU($buffer);
 #   ($year,$mm,$dd) = Decode_Date_US($buffer);
 # ======================================================================
 
+my $baseyear = Moving_Window(64);
+
 print "1..25\n";
 
 $n = 1;
 if ((($year,$mm,$dd) = Decode_Date_EU("3.1.64")) &&
-($year==1964)&&($mm==1)&&($dd==3))
+($year==$baseyear)&&($mm==1)&&($dd==3))
 {print "ok $n\n";} else {print "not ok $n\n";}
 $n++;
 if ((($year,$mm,$dd) = Decode_Date_EU("3 1 64")) &&
-($year==1964)&&($mm==1)&&($dd==3))
+($year==$baseyear)&&($mm==1)&&($dd==3))
 {print "ok $n\n";} else {print "not ok $n\n";}
 $n++;
 if ((($year,$mm,$dd) = Decode_Date_EU("03.01.64")) &&
-($year==1964)&&($mm==1)&&($dd==3))
+($year==$baseyear)&&($mm==1)&&($dd==3))
 {print "ok $n\n";} else {print "not ok $n\n";}
 $n++;
 if ((($year,$mm,$dd) = Decode_Date_EU("03/01/64")) &&
-($year==1964)&&($mm==1)&&($dd==3))
+($year==$baseyear)&&($mm==1)&&($dd==3))
 {print "ok $n\n";} else {print "not ok $n\n";}
 $n++;
 if ((($year,$mm,$dd) = Decode_Date_EU("3. Ene 1964",4)) &&
@@ -37,11 +39,11 @@
 {print "ok $n\n";} else {print "not ok $n\n";}
 $n++;
 if ((($year,$mm,$dd) = Decode_Date_EU("Geburtstag: 3. Januar '64 in Backnang/Württemberg",3)) &&
-($year==1964)&&($mm==1)&&($dd==3))
+($year==$baseyear)&&($mm==1)&&($dd==3))
 {print "ok $n\n";} else {print "not ok $n\n";}
 $n++;
 if ((($year,$mm,$dd) = Decode_Date_EU("03-Jan-64")) &&
-($year==1964)&&($mm==1)&&($dd==3))
+($year==$baseyear)&&($mm==1)&&($dd==3))
 {print "ok $n\n";} else {print "not ok $n\n";}
 $n++;
 if ((($year,$mm,$dd) = Decode_Date_EU("3.Jan1964",6)) &&
@@ -49,19 +51,19 @@
 {print "ok $n\n";} else {print "not ok $n\n";}
 $n++;
 if ((($year,$mm,$dd) = Decode_Date_EU("3Jan64",0)) &&
-($year==1964)&&($mm==1)&&($dd==3))
+($year==$baseyear)&&($mm==1)&&($dd==3))
 {print "ok $n\n";} else {print "not ok $n\n";}
 $n++;
 if ((($year,$mm,$dd) = Decode_Date_EU("030164")) &&
-($year==1964)&&($mm==1)&&($dd==3))
+($year==$baseyear)&&($mm==1)&&($dd==3))
 {print "ok $n\n";} else {print "not ok $n\n";}
 $n++;
 if ((($year,$mm,$dd) = Decode_Date_EU("3ja64")) &&
-($year==1964)&&($mm==1)&&($dd==3))
+($year==$baseyear)&&($mm==1)&&($dd==3))
 {print "ok $n\n";} else {print "not ok $n\n";}
 $n++;
 if ((($year,$mm,$dd) = Decode_Date_EU("3164")) &&
-($year==1964)&&($mm==1)&&($dd==3))
+($year==$baseyear)&&($mm==1)&&($dd==3))
 {print "ok $n\n";} else {print "not ok $n\n";}
 $n++;
 
@@ -74,15 +76,15 @@
 $n++;
 
 if ((($year,$mm,$dd) = Decode_Date_US("1 3 64")) &&
-($year==1964)&&($mm==1)&&($dd==3))
+($year==$baseyear)&&($mm==1)&&($dd==3))
 {print "ok $n\n";} else {print "not ok $n\n";}
 $n++;
 if ((($year,$mm,$dd) = Decode_Date_US("01/03/64")) &&
-($year==1964)&&($mm==1)&&($dd==3))
+($year==$baseyear)&&($mm==1)&&($dd==3))
 {print "ok $n\n";} else {print "not ok $n\n";}
 $n++;
 if ((($year,$mm,$dd) = Decode_Date_US("Jan 3 '64")) &&
-($year==1964)&&($mm==1)&&($dd==3))
+($year==$baseyear)&&($mm==1)&&($dd==3))
 {print "ok $n\n";} else {print "not ok $n\n";}
 $n++;
 if ((($year,$mm,$dd) = Decode_Date_US("Jan 3 1964")) &&
@@ -98,15 +100,15 @@
 {print "ok $n\n";} else {print "not ok $n\n";}
 $n++;
 if ((($year,$mm,$dd) = Decode_Date_US("Jan364")) &&
-($year==1964)&&($mm==1)&&($dd==3))
+($year==$baseyear)&&($mm==1)&&($dd==3))
 {print "ok $n\n";} else {print "not ok $n\n";}
 $n++;
 if ((($year,$mm,$dd) = Decode_Date_US("ja364")) &&
-($year==1964)&&($mm==1)&&($dd==3))
+($year==$baseyear)&&($mm==1)&&($dd==3))
 {print "ok $n\n";} else {print "not ok $n\n";}
 $n++;
 if ((($year,$mm,$dd) = Decode_Date_US("1364")) &&
-($year==1964)&&($mm==1)&&($dd==3))
+($year==$baseyear)&&($mm==1)&&($dd==3))
 {print "ok $n\n";} else {print "not ok $n\n";}
 $n++;
 
--- a/t/f027.t
+++ b/t/f027.t
@@ -6,12 +6,14 @@
 
 BEGIN { $Date::Calc::XS_DISABLE = $Date::Calc::XS_DISABLE = 1; }
 
-use Date::Calc qw( Decode_Date_US2 Language Decode_Language );
+use Date::Calc qw( Decode_Date_US2 Language Decode_Language Moving_Window );
 
 # ======================================================================
 #   ($year,$mm,$dd) = Decode_Date_US2($date);
 # ======================================================================
 
+my $baseyear = Moving_Window(64);
+
 print "1..46\n";
 
 $n = 1;
@@ -43,47 +45,47 @@
 $n++;
 
 if ((($year,$mm,$dd) = Decode_Date_US2("_1364_")) &&
-($year==1964) && ($mm==1) && ($dd==3))
+($year==$baseyear) && ($mm==1) && ($dd==3))
 {print "ok $n\n";} else {print "not ok $n\n";}
 $n++;
 
 if ((($year,$mm,$dd) = Decode_Date_US2("_01364_")) &&
-($year==1964) && ($mm==1) && ($dd==3))
+($year==$baseyear) && ($mm==1) && ($dd==3))
 {print "ok $n\n";} else {print "not ok $n\n";}
 $n++;
 
 if ((($year,$mm,$dd) = Decode_Date_US2("_001364_")) &&
-($year==1964) && ($mm==1) && ($dd==3))
+($year==$baseyear) && ($mm==1) && ($dd==3))
 {print "ok $n\n";} else {print "not ok $n\n";}
 $n++;
 
 if ((($year,$mm,$dd) = Decode_Date_US2("_10364_")) &&
-($year==1964) && ($mm==1) && ($dd==3))
+($year==$baseyear) && ($mm==1) && ($dd==3))
 {print "ok $n\n";} else {print "not ok $n\n";}
 $n++;
 
 if ((($year,$mm,$dd) = Decode_Date_US2("_010364_")) &&
-($year==1964) && ($mm==1) && ($dd==3))
+($year==$baseyear) && ($mm==1) && ($dd==3))
 {print "ok $n\n";} else {print "not ok $n\n";}
 $n++;
 
 if ((($year,$mm,$dd) = Decode_Date_US2("_0010364_")) &&
-($year==1964) && ($mm==1) && ($dd==3))
+($year==$baseyear) && ($mm==1) && ($dd==3))
 {print "ok $n\n";} else {print "not ok $n\n";}
 $n++;
 
 if ((($year,$mm,$dd) = Decode_Date_US2("_110364_")) &&
-($year==1964) && ($mm==11) && ($dd==3))
+($year==$baseyear) && ($mm==11) && ($dd==3))
 {print "ok $n\n";} else {print "not ok $n\n";}
 $n++;
 
 if ((($year,$mm,$dd) = Decode_Date_US2("_0110364_")) &&
-($year==1964) && ($mm==11) && ($dd==3))
+($year==$baseyear) && ($mm==11) && ($dd==3))
 {print "ok $n\n";} else {print "not ok $n\n";}
 $n++;
 
 if ((($year,$mm,$dd) = Decode_Date_US2("_00110364_")) &&
-($year==1964) && ($mm==11) && ($dd==3))
+($year==$baseyear) && ($mm==11) && ($dd==3))
 {print "ok $n\n";} else {print "not ok $n\n";}
 $n++;
 
@@ -118,7 +120,7 @@
 $n++;
 
 if ((($year,$mm,$dd) = Decode_Date_US2("_1_3_64_")) &&
-($year==1964) && ($mm==1) && ($dd==3))
+($year==$baseyear) && ($mm==1) && ($dd==3))
 {print "ok $n\n";} else {print "not ok $n\n";}
 $n++;
 
@@ -128,22 +130,22 @@
 $n++;
 
 if ((($year,$mm,$dd) = Decode_Date_US2("_jan_3_64_")) &&
-($year==1964) && ($mm==1) && ($dd==3))
+($year==$baseyear) && ($mm==1) && ($dd==3))
 {print "ok $n\n";} else {print "not ok $n\n";}
 $n++;
 
 if ((($year,$mm,$dd) = Decode_Date_US2("_Jan_3_64_")) &&
-($year==1964) && ($mm==1) && ($dd==3))
+($year==$baseyear) && ($mm==1) && ($dd==3))
 {print "ok $n\n";} else {print "not ok $n\n";}
 $n++;
 
 if ((($year,$mm,$dd) = Decode_Date_US2("_jAN_3_64_")) &&
-($year==1964) && ($mm==1) && ($dd==3))
+($year==$baseyear) && ($mm==1) && ($dd==3))
 {print "ok $n\n";} else {print "not ok $n\n";}
 $n++;
 
 if ((($year,$mm,$dd) = Decode_Date_US2("_January_3_64_")) &&
-($year==1964) && ($mm==1) && ($dd==3))
+($year==$baseyear) && ($mm==1) && ($dd==3))
 {print "ok $n\n";} else {print "not ok $n\n";}
 $n++;
 
@@ -157,32 +159,32 @@
 $n++;
 
 if ((($year,$mm,$dd) = Decode_Date_US2("_Jan364_")) &&
-($year==1964) && ($mm==1) && ($dd==3))
+($year==$baseyear) && ($mm==1) && ($dd==3))
 {print "ok $n\n";} else {print "not ok $n\n";}
 $n++;
 
 if ((($year,$mm,$dd) = Decode_Date_US2("_Jan0364_")) &&
-($year==1964) && ($mm==1) && ($dd==3))
+($year==$baseyear) && ($mm==1) && ($dd==3))
 {print "ok $n\n";} else {print "not ok $n\n";}
 $n++;
 
 if ((($year,$mm,$dd) = Decode_Date_US2("_Jan00364_")) &&
-($year==1964) && ($mm==1) && ($dd==3))
+($year==$baseyear) && ($mm==1) && ($dd==3))
 {print "ok $n\n";} else {print "not ok $n\n";}
 $n++;
 
 if ((($year,$mm,$dd) = Decode_Date_US2("_Jan2264_")) &&
-($year==1964) && ($mm==1) && ($dd==22))
+($year==$baseyear) && ($mm==1) && ($dd==22))
 {print "ok $n\n";} else {print "not ok $n\n";}
 $n++;
 
 if ((($year,$mm,$dd) = Decode_Date_US2("_Jan02264_",0)) &&
-($year==1964) && ($mm==1) && ($dd==22))
+($year==$baseyear) && ($mm==1) && ($dd==22))
 {print "ok $n\n";} else {print "not ok $n\n";}
 $n++;
 
 if ((($year,$mm,$dd) = Decode_Date_US2("_Jan002264_",'')) &&
-($year==1964) && ($mm==1) && ($dd==22))
+($year==$baseyear) && ($mm==1) && ($dd==22))
 {print "ok $n\n";} else {print "not ok $n\n";}
 $n++;
 
@@ -225,12 +227,12 @@
 $n++;
 
 if ((($year,$mm,$dd) = Decode_Date_US2("x000001x000003x000064x")) &&
-($year==1964) && ($mm==1) && ($dd==3))
+($year==$baseyear) && ($mm==1) && ($dd==3))
 {print "ok $n\n";} else {print "not ok $n\n";}
 $n++;
 
 if ((($year,$mm,$dd) = Decode_Date_US2("_ja_000003x000064x")) &&
-($year==1964) && ($mm==1) && ($dd==3))
+($year==$baseyear) && ($mm==1) && ($dd==3))
 {print "ok $n\n";} else {print "not ok $n\n";}
 $n++;
 
--- a/t/f028.t
+++ b/t/f028.t
@@ -6,12 +6,14 @@
 
 BEGIN { $Date::Calc::XS_DISABLE = $Date::Calc::XS_DISABLE = 1; }
 
-use Date::Calc qw( Decode_Date_EU2 Language Decode_Language );
+use Date::Calc qw( Decode_Date_EU2 Language Decode_Language Moving_Window );
 
 # ======================================================================
 #   ($year,$mm,$dd) = Decode_Date_EU2($date);
 # ======================================================================
 
+my $baseyear = Moving_Window(64);
+
 print "1..46\n";
 
 $n = 1;
@@ -43,47 +45,47 @@
 $n++;
 
 if ((($year,$mm,$dd) = Decode_Date_EU2("_3164_")) &&
-($year==1964) && ($mm==1) && ($dd==3))
+($year==$baseyear) && ($mm==1) && ($dd==3))
 {print "ok $n\n";} else {print "not ok $n\n";}
 $n++;
 
 if ((($year,$mm,$dd) = Decode_Date_EU2("_03164_")) &&
-($year==1964) && ($mm==1) && ($dd==3))
+($year==$baseyear) && ($mm==1) && ($dd==3))
 {print "ok $n\n";} else {print "not ok $n\n";}
 $n++;
 
 if ((($year,$mm,$dd) = Decode_Date_EU2("_003164_")) &&
-($year==1964) && ($mm==1) && ($dd==3))
+($year==$baseyear) && ($mm==1) && ($dd==3))
 {print "ok $n\n";} else {print "not ok $n\n";}
 $n++;
 
 if ((($year,$mm,$dd) = Decode_Date_EU2("_30164_")) &&
-($year==1964) && ($mm==1) && ($dd==3))
+($year==$baseyear) && ($mm==1) && ($dd==3))
 {print "ok $n\n";} else {print "not ok $n\n";}
 $n++;
 
 if ((($year,$mm,$dd) = Decode_Date_EU2("_030164_")) &&
-($year==1964) && ($mm==1) && ($dd==3))
+($year==$baseyear) && ($mm==1) && ($dd==3))
 {print "ok $n\n";} else {print "not ok $n\n";}
 $n++;
 
 if ((($year,$mm,$dd) = Decode_Date_EU2("_0030164_")) &&
-($year==1964) && ($mm==1) && ($dd==3))
+($year==$baseyear) && ($mm==1) && ($dd==3))
 {print "ok $n\n";} else {print "not ok $n\n";}
 $n++;
 
 if ((($year,$mm,$dd) = Decode_Date_EU2("_110364_")) &&
-($year==1964) && ($mm==3) && ($dd==11))
+($year==$baseyear) && ($mm==3) && ($dd==11))
 {print "ok $n\n";} else {print "not ok $n\n";}
 $n++;
 
 if ((($year,$mm,$dd) = Decode_Date_EU2("_0110364_")) &&
-($year==1964) && ($mm==3) && ($dd==11))
+($year==$baseyear) && ($mm==3) && ($dd==11))
 {print "ok $n\n";} else {print "not ok $n\n";}
 $n++;
 
 if ((($year,$mm,$dd) = Decode_Date_EU2("_00110364_")) &&
-($year==1964) && ($mm==3) && ($dd==11))
+($year==$baseyear) && ($mm==3) && ($dd==11))
 {print "ok $n\n";} else {print "not ok $n\n";}
 $n++;
 
@@ -118,7 +120,7 @@
 $n++;
 
 if ((($year,$mm,$dd) = Decode_Date_EU2("_3_1_64_")) &&
-($year==1964) && ($mm==1) && ($dd==3))
+($year==$baseyear) && ($mm==1) && ($dd==3))
 {print "ok $n\n";} else {print "not ok $n\n";}
 $n++;
 
@@ -128,22 +130,22 @@
 $n++;
 
 if ((($year,$mm,$dd) = Decode_Date_EU2("_3_jan_64_")) &&
-($year==1964) && ($mm==1) && ($dd==3))
+($year==$baseyear) && ($mm==1) && ($dd==3))
 {print "ok $n\n";} else {print "not ok $n\n";}
 $n++;
 
 if ((($year,$mm,$dd) = Decode_Date_EU2("_3_Jan_64_",0)) &&
-($year==1964) && ($mm==1) && ($dd==3))
+($year==$baseyear) && ($mm==1) && ($dd==3))
 {print "ok $n\n";} else {print "not ok $n\n";}
 $n++;
 
 if ((($year,$mm,$dd) = Decode_Date_EU2("_3_jAN_64_",1)) &&
-($year==1964) && ($mm==1) && ($dd==3))
+($year==$baseyear) && ($mm==1) && ($dd==3))
 {print "ok $n\n";} else {print "not ok $n\n";}
 $n++;
 
 if ((($year,$mm,$dd) = Decode_Date_EU2("_3-JAN-64_",2)) &&
-($year==1964) && ($mm==1) && ($dd==3))
+($year==$baseyear) && ($mm==1) && ($dd==3))
 {print "ok $n\n";} else {print "not ok $n\n";}
 $n++;
 
@@ -158,7 +160,7 @@
 $n++;
 
 if ((($year,$mm,$dd) = Decode_Date_EU2("_000003-Jan-000064_",undef)) &&
-($year==1964) && ($mm==1) && ($dd==3))
+($year==$baseyear) && ($mm==1) && ($dd==3))
 {print "ok $n\n";} else {print "not ok $n\n";}
 $n++;
 
@@ -168,7 +170,7 @@
 $n++;
 
 if ((($year,$mm,$dd) = Decode_Date_EU2("_3_ja_64_")) &&
-($year==1964) && ($mm==1) && ($dd==3))
+($year==$baseyear) && ($mm==1) && ($dd==3))
 {print "ok $n\n";} else {print "not ok $n\n";}
 $n++;
 
@@ -177,22 +179,22 @@
 $n++;
 
 if ((($year,$mm,$dd) = Decode_Date_EU2("_3ja64_")) &&
-($year==1964) && ($mm==1) && ($dd==3))
+($year==$baseyear) && ($mm==1) && ($dd==3))
 {print "ok $n\n";} else {print "not ok $n\n";}
 $n++;
 
 if ((($year,$mm,$dd) = Decode_Date_EU2("_03ja64_")) &&
-($year==1964) && ($mm==1) && ($dd==3))
+($year==$baseyear) && ($mm==1) && ($dd==3))
 {print "ok $n\n";} else {print "not ok $n\n";}
 $n++;
 
 if ((($year,$mm,$dd) = Decode_Date_EU2("_003ja64_")) &&
-($year==1964) && ($mm==1) && ($dd==3))
+($year==$baseyear) && ($mm==1) && ($dd==3))
 {print "ok $n\n";} else {print "not ok $n\n";}
 $n++;
 
 if ((($year,$mm,$dd) = Decode_Date_EU2("_000003ja000064_")) &&
-($year==1964) && ($mm==1) && ($dd==3))
+($year==$baseyear) && ($mm==1) && ($dd==3))
 {print "ok $n\n";} else {print "not ok $n\n";}
 $n++;
 
@@ -225,12 +227,12 @@
 $n++;
 
 if ((($year,$mm,$dd) = Decode_Date_EU2("x000003x000001x000064x")) &&
-($year==1964) && ($mm==1) && ($dd==3))
+($year==$baseyear) && ($mm==1) && ($dd==3))
 {print "ok $n\n";} else {print "not ok $n\n";}
 $n++;
 
 if ((($year,$mm,$dd) = Decode_Date_EU2("x000003_ja_000064x")) &&
-($year==1964) && ($mm==1) && ($dd==3))
+($year==$baseyear) && ($mm==1) && ($dd==3))
 {print "ok $n\n";} else {print "not ok $n\n";}
 $n++;
 
