View the DQSD CVS repository here:
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/dqsd/

Update of /cvsroot/dqsd/dqsd/addons/genealogy
In directory usw-pr-cvs1:/tmp/cvs-serv26250/addons/genealogy

Modified Files:
        genealogy_lib.js 
Log Message:
added genealogy_parse_date and genealogy_age_calc functions

Index: genealogy_lib.js
===================================================================
RCS file: /cvsroot/dqsd/dqsd/addons/genealogy/genealogy_lib.js,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** genealogy_lib.js    25 Sep 2002 15:26:12 -0000      1.4
--- genealogy_lib.js    3 Oct 2002 06:07:51 -0000       1.5
***************
*** 1,4 ****
      var genealogy_debug = 0;
!     var genealogy_lib_version = "1.4";
  
        var genealogy_states = new Array(
--- 1,9 ----
      var genealogy_debug = 0;
!     var genealogy_lib_version = "1.5";
! 
!       var genealogy_month_names = new Array("JANUARY", "FEBRUARY", "MARCH", "APRIL", 
"MAY", "JUNE", "JULY", "AUGUST", "SEPTEMBER", "OCTOBER", "NOVEMBER", "DECEMBER");
!       var genealogy_date_format_1 = 
"([0-9]{1,2})\\s*/\\s*([0-9]{1,2})\\s*/\\s*([0-9]{4})";
!       var genealogy_date_format_2 = "([0-9]{1,2})\\s+([a-zA-Z]{3,})\\s+([0-9]{4})";
!       var genealogy_date_format_all = 
"(("+genealogy_date_format_1+")|("+genealogy_date_format_2+"))";
  
        var genealogy_states = new Array(
***************
*** 551,554 ****
--- 556,662 ----
        }
        return results;
+ }
+ 
+ function genealogy_get_month_length(month, year)
+ {
+       var len;
+       if(month==1 || month==3 || month==5 || month==7 || month==8 || 
+month==10||month==12) {
+               len = 31;
+       } else {
+               if(month==2) {
+                       len = 28;
+                       if(!(year%4) && (year%100 || !(year%400)))
+                               len++;
+               } else {
+                       len = 30;
+               }
+    }
+    return len;    
+ }
+ 
+ 
+ function genealogy_age_calc(startDate, endDate)
+ {
+       if (endDate == null || endDate == "" || typeof endDate == "undefined") {
+               endDate = new Date();
+       }
+ 
+       var startDay = startDate.getDate();
+       var startMonth = startDate.getMonth()+1;
+       var startYear = startDate.getFullYear();
+ 
+       var endDay = endDate.getDate();
+       var endMonth = endDate.getMonth()+1;
+       var endYear = endDate.getFullYear();
+ 
+ 
+       var ageDays = endDay - startDay;
+       if (ageDays < 0) {
+               endMonth--;
+               if (endMonth < 1) {
+                       endYear--;
+                       endMonth += 12;
+               }
+               var monthLength = genealogy_get_month_length(endMonth, endYear);
+               ageDays += monthLength;
+       }
+ 
+       var ageMonths = endMonth - startMonth;
+       if (ageMonths < 0) {
+               endYear--;
+               ageMonths += 12;
+       }
+ 
+       var ageYears = endYear - startYear;
+       var result = "";
+       if (ageYears > 0){
+               result += (ageYears  + " year"  + ((ageYears != 1)  ? "s" : "") + ", 
+");
+       }
+       if (ageMonths > 0 || result != "") {
+               result += (ageMonths + " month" + ((ageMonths != 1) ? "s" : "") + ", 
+"); 
+       }
+       result += (ageDays   + " day"   + ((ageDays != 1)   ? "s" : ""));
+ 
+       return result;
+ }
+ 
+ function genealogy_parse_date(dateString)
+ {
+       var year;
+       var month;
+       var day;
+       var r;
+       var valid_fmt = false;
+       var dateFmt1RegExp = new RegExp(genealogy_date_format_1);
+       var dateFmt2RegExp = new RegExp(genealogy_date_format_2);
+       if ( (r = dateFmt1RegExp.exec(dateString)) != null) {
+               month = r[1]-1;
+               day = r[2];
+               year = r[3];
+               valid_fmt = true;
+       } else if ( (r = dateFmt2RegExp.exec(dateString)) != null) {
+               day = r[1];
+               month = -1;
+               year = r[3];
+               var monthName = (r[2]).toUpperCase();
+               for (var i=0; i < genealogy_month_names.length; i++) {
+                       if (monthName == genealogy_month_names[i] ||
+                               monthName == genealogy_month_names[i].substring(0,3)) {
+                               month = i;
+                               valid_fmt = true;
+                               break;
+                       }
+               }
+       }
+       if (valid_fmt) {
+               if (month < 0 || month > 11) {
+                       valid_fmt = false;
+               }
+       }
+       if (valid_fmt) {
+               return new Date(year, month, day);
+       } else {
+               return false;
+       }
  }
  




-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
DQSD-CVS mailing list
https://lists.sourceforge.net/lists/listinfo/dqsd-cvs
DQSD CVS repository:
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/dqsd/

Reply via email to