wedata

Database: UStoreScriptFunction8

Item Details: 共通関数定義

spec_version 1
content /** * "d度m分s秒"形式を固定小数点数値の度数に変換して返す。 * @param d 度の数値を含む文字列 (string) * @param m 分の数値を含む文字列 (string) * @param s 秒の数値を含む文字列 (string) * @return 固定小数点数値の度数(double) */ function parseDegree(d,m,s) { var dd = pickupNum(d); var mm = pickupNum(m); var ss = pickupNum(s); var n = dd + (mm / 60) + (ss / 3600); return n; } /** * 文字列から最初に出現した固定小数点数値を抽出して返す。 * @param str 文字列 (string) * @return 固定小数点数値の度数(double) */ function pickupNum(str) { var size = str.length; var s = -1; var e = 0; var fract = false; for (var i = 0; i < size; i++) { var ch = str.charAt(i); if ('0' <= ch && ch <= '9') { if (s < 0) s = i; e = i; } else if (ch == '.') { if (fract) break; fract = true; } else { break; } } return parseFloat(str.substring(s, e+1)); } /** * yy.mm.dd形式のymd(yyは平成の年)とhh:mm形式の時分から、YYYY-MM-DDThh:mm:00形式の時刻に変換して返す。 * @param ymd yy.mm.dd形式の年月日(yyは平成の年) (string) * @param hm hh:mm形式の時分 (string) * @return YYYY-MM-DDThh:mm:00形式の時刻(string) */ function makeDate1(ymd,hm) { var yymmdd = ymd.split('.'); var year = parseInt(yymmdd[0]) + 1988; var month = yymmdd[1]; var day = yymmdd[2]; var i = hm.indexOf(':'); var hour = hm.substring(0, i); if (hour.length == 1) hour = '0' + hour; var minute = hm.substring(i+1); if (minute.length == 1) minute = '0' + minute; return year +'-'+ month +'-'+ day +'T'+ hour +':'+ minute +':00'; } /** * 「YYYY」形式の年、「数字+文字」形式の月、「hh」形式の時間、「mm」形式の分から、YYYY-MM-DDThh:mm:00形式の時刻に変換して返す。 * @param year 「YYYY」形式の年(string) * @param mmdd 「数字+文字」形式の月。例 12月 (string) * @param hour 「hh」形式の時間(string) * @param minute 「mm」形式の分(string) * @return YYYY-MM-DDThh:mm:00形式の時刻(string) */ function makeDate2(year, mmdd, hour, minute) { var nums = pickupNums(mmdd); var month = nums[0]; if (month < 10) month = '0' + month; var day = nums[1]; if (day < 10) day = '0' + day; return year +'-'+ month +'-'+ day +'T'+ hour +':'+ minute +':00'; } /** * 数値と文字が混じった文字列から、数値を抽出して、出現順に配列にして返す。 * @param str 文字列 (string) * @return 数値(double)の配列 */ function pickupNums(str) { var nums = new Array(); var n = 0; var s = -1; var e = 0; var inNum = false; var fract = false; var size = str.length; for (var i = 0; i < size; i++) { var ch = str.charAt(i); if ('0' <= ch && ch <= '9') { if (!inNum) s = i; e = i; inNum = true; } else if (ch == '.') { if (inNum) { if (fract) { nums[n++] = parseFloat(str.substring(s, e+1)); inNum = false; fract = false; } else { fract = true; } } } else { if (inNum) nums[n++] = parseFloat(str.substring(s, e+1)); inNum = false; } } if (inNum) nums[n++] = parseFloat(str.substring(s, e+1)); return nums; }

History

Back