content |
/**
* 文字列から年月日時分として取り出しす。
* [例]
* parseYMDHM("2012/3/5 12:07") == "2012-03-05T12:07:00"
* parseYMDHM("2012/3/5 12:00") == "2012-03-05T12:00:00"
* @param str 半角または全角の数字の文字を含む文字列
* @return 年月日時分
*/
function parseYMDHM(str) {
var nums = pickupNumZ(str, false);
if (nums[2] > 31)
if (nums[2] < 320) {
nums[4] = nums[3];
nums[3] = nums[2] % 10;
nums[2] = Math.floor(nums[2] / 10 + 0.1);
} else {
nums[4] = nums[3];
nums[3] = nums[2] % 100;
nums[2] = Math.floor(nums[2] / 100 + 0.1);
}
return nums[0] + "-" + toDigit2(nums[1]) + "-" + toDigit2(nums[2]) +
"T" + toDigit2(nums[3]) + ":" + toDigit2(nums[4]) + ":00";
}
/**
* 文字列から先頭の1個の整数を平成の年としてを取り出し、西暦年に変換する。
* [例]
* parseHyear("平成23年") == 2011
* parseHyear("H23") == 2011
* parseHyear("23") == 2011
* @param str 半角または全角の数字の文字を含む文字列
* @return 西暦年
*/
function parseHyear(str) {
var nums = pickupNumZ(str, false);
return ""+ (nums[0] + 1988);
}
/**
* 文字列から平成の年月日として取り出し、西暦年月日に変換する。
* [例]
* parseHdate("平成23年9月24日") == 2011-09-24
* parseHdate("H23.12.4 (晴)") == 2011-12-04
* parseHdate("23.9.24") == 2011-09-24
* @param str 半角または全角の数字の文字を含む文字列
* @return 西暦年月日
*/
function parseHdate(str) {
var nums = pickupNumZ(str, false);
return (nums[0] + 1988) +"-"+ toDigit2(nums[1]) +"-"+ toDigit2(nums[2]);
}
/**
* 文字列から月日を取り出しす。
* [例]
* parseMMDD("9月24日 雨") == 09-24
* parseMMDD("9.24 (晴)") == 09-24
* parseMMDD("10.24") == 10-24
* @param str 半角または全角の数字の文字を含む文字列
* @return 月日
*/
function parseMMDD(str) {
var nums = pickupNumZ(str, false);
return toDigit2(nums[0]) +"-"+ toDigit2(nums[1]);
}
/**
* 文字列から時分を取り出しす。
* [例]
* parseHHmm("9時23分") == "09:23"
* parseHHmm("9.3") == "09:03"
* parseHHmm("午後9時3分") == "21:03"
* parseHHmm("-") => 00:00
* @param str 文字列
* @return 時分
*/
function parseHHmm(str) {
var nums = pickupNumZ(str, false);
if (nums.length < 2) return "00:00";
if (str[0] == "後" || str[1] == "後")
nums[0] += 12;
if (nums.length > 1)
return toDigit2(nums[0]) +":"+ toDigit2(nums[1]);
else
return toDigit2(nums[0]) +":00";
}
/**
* 1桁の数字の前に"0"を補って2桁にする。
* [例]
* twoDigits("12月") == 12
* twoDigits("1日") == 01
* @param num 半角または全角の数字の1贈ォ2桁の数字を含む文字列
* @return 2桁の数字
*/
function twoDigits(str) {
var nums = pickupNumZ(str, false);
return toDigit2(nums[0]);
}
/**
* yy.mm.dd形式のymd(yyは平成の年)とhh:mm形式の時分から、YYYY-MM-DDThh:mm:00形式の時刻に変換して返す。
* makeDate1("平23.8.31","9:55") == "2011-08-31T09:55:00"
* @param ymd yy.mm.dd形式の年月日(yyは平成の年) (string)
* @param hm hh:mm形式の時分 (string)
* @return YYYY-MM-DDThh:mm:00形式の時刻(string)
*/
function makeDate1(ymd,hm) {
if (ymd.length == 0 || hm.length == 0) return "";
for(var i = 0; ymd[i] < '0' || '9' < ymd[i]; i++);
ymd = ymd.substring(i);
var yymmdd = ymd.split('.');
var year = parseInt(yymmdd[0]) + 1988;
var month = yymmdd[1];
if (month.length == 1) month = '0' + month;
var day = yymmdd[2];
if (day.length == 1) day = '0' + day;
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';
}
/**
* yy.mm.dd形式がPDF変換によりdd.mm.yyと認識され、
* 20dd-mm-yyT00:00:00.000に変換される場合の対応。
* 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 makeDate1x(ymd,hm) {
//var yymmdd = ymd.split('.');
var year = parseInt(ymd.substring(8,10)) + 1988;
var month = ymd.substring(5,7);
var day = ymd.substring(2,4);
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 「数字+文字」形式の月。たとえば"8月17日" (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';
} |