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/