koha-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Koha-cvs] koha/C4 Date.pm [R_2-2-7-1]


From: Antoine Farnault
Subject: [Koha-cvs] koha/C4 Date.pm [R_2-2-7-1]
Date: Mon, 12 Feb 2007 11:00:53 +0000

CVSROOT:        /sources/koha
Module name:    koha
Branch:         R_2-2-7-1
Changes by:     Antoine Farnault <toins>        07/02/12 11:00:53

Modified files:
        C4             : Date.pm 

Log message:
        Commiting BUG FIX for 2.2.7.1.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/koha/C4/Date.pm?cvsroot=koha&only_with_tag=R_2-2-7-1&r1=1.13&r2=1.13.10.1

Patches:
Index: Date.pm
===================================================================
RCS file: /sources/koha/koha/C4/Date.pm,v
retrieving revision 1.13
retrieving revision 1.13.10.1
diff -u -b -r1.13 -r1.13.10.1
--- Date.pm     8 Apr 2003 11:30:55 -0000       1.13
+++ Date.pm     12 Feb 2007 11:00:53 -0000      1.13.10.1
@@ -4,7 +4,7 @@
 
 use strict;
 use C4::Context;
-use Date::Manip;
+use Date::Calc qw(Parse_Date Decode_Date_EU Decode_Date_US Time_to_Date 
check_date);
 
 require Exporter;
 
@@ -61,30 +61,34 @@
                return "";
        }
 
+#     warn $olddate;
+#     $olddate=~s#/|\.|-##g;
+    my ($year,$month,$day)=Parse_Date($olddate);
+    ($year,$month,$day)=split /-|\/|\.|:/,$olddate unless ($year && $month);
+#      warn "$olddate annee $year mois $month jour $day";
+    if ($year>0 && $month>0){
        my $dateformat = get_date_format();
-
+      $dateformat="metric" if (index(":",$olddate)>0);
        if ( $dateformat eq "us" )
        {
-               Date_Init("DateFormat=US");
-               $olddate = ParseDate($olddate);
-               $newdate = UnixDate($olddate,'%m/%d/%Y');
+          $newdate = sprintf("%02d/%02d/%04d",$month,$day,$year);
        }
        elsif ( $dateformat eq "metric" )
        {
-               Date_Init("DateFormat=metric");
-               $olddate = ParseDate($olddate);
-               $newdate = UnixDate($olddate,'%d/%m/%Y');
+          $newdate = sprintf("%02d/%02d/%04d",$day,$month,$year);
        }
        elsif ( $dateformat eq "iso" )
        {
-               Date_Init("DateFormat=iso");
-               $olddate = ParseDate($olddate);
-               $newdate = UnixDate($olddate,'%Y-%m-%d');
+  #            Date_Init("DateFormat=iso");
+          $newdate = sprintf("%04d-%02d-%02d",$year,$month,$day);
        }
        else
        {
                return "Invalid date format: $dateformat. Please change in 
system preferences";
        }
+#       warn "newdate :$newdate";
+    }
+    return $newdate;
 }
 
 sub format_date_in_iso
@@ -98,28 +102,44 @@
         }
                 
         my $dateformat = get_date_format();
-
+        my ($year,$month,$day);
+        my @date;
+        my $tmpolddate=$olddate;
+        $tmpolddate=~s#/|\.|-|\\##g;
+        $dateformat="metric" if (index(":",$olddate)>0);
         if ( $dateformat eq "us" )
         {
-                Date_Init("DateFormat=US");
-                $olddate = ParseDate($olddate);
+          ($month,$day,$year)=split /-|\/|\.|:/,$olddate unless ($year && 
$month);
+          if ($month>0 && $day >0){
+                @date = Decode_Date_US($tmpolddate);
+          } else {
+            @date=($year, $month,$day)
+          }
         }
         elsif ( $dateformat eq "metric" )
         {
-                Date_Init("DateFormat=metric");
-                $olddate = ParseDate($olddate);
+          ($day,$month,$year)=split /-|\/|\.|:/,$olddate unless ($year && 
$month);
+          if ($month>0 && $day >0){
+                @date = Decode_Date_EU($tmpolddate);
+          } else {
+            @date=($year, $month,$day)
+          }
         }
         elsif ( $dateformat eq "iso" )
         {
-                Date_Init("DateFormat=iso");
-                $olddate = ParseDate($olddate);
+          ($year,$month,$day)=split /-|\/|\.|:/,$olddate unless ($year && 
$month);
+          if ($month>0 && $day >0){
+            @date=($year, $month,$day) if (check_date($year,$month,$day));
+          } else {
+            @date=($year, $month,$day)
+          }
         }
         else
         {
                 return "9999-99-99";
         }
 
-       $newdate = UnixDate($olddate, '%Y-%m-%d');
+       $newdate = sprintf("%04d-%02d-%02d",$date[0],$date[1],$date[2]);
 
        return $newdate;
 }




reply via email to

[Prev in Thread] Current Thread [Next in Thread]