callback({ "resource_url": "http://wedata.net/items/58693?rev=120345", "data": { "spec_version": "1", "content": "/**\r\n * 文字列から年月日時分として取り出しす。\r\n * [例]\r\n * parseYMDHM(\"2012/3/5 12:07\") == \"2012-03-05T12:07:00\"\r\n * parseYMDHM(\"2012年3月5日 12:00\") == \"2012-03-05T12:00:00\"\r\n * @param str 半角または全角の数字の文字を含む文字列\r\n * @return 年月日時分\r\n */\r\nfunction parseYMDHM(str) {\r\n\tvar nums = pickupNumZ(str, false);\r\n\tif (nums[2] > 31) // 日と時の間のスペースが無視された場合\r\n\t\tif (nums[2] < 320) { // nums[2] == 112 などの場合は間違う恐れあり\r\n\t\t\tnums[4] = nums[3];\r\n\t\t\tnums[3] = nums[2] % 10;\r\n\t\t\tnums[2] = Math.floor(nums[2] / 10 + 0.1);\r\n\t\t} else {\r\n\t\t\tnums[4] = nums[3];\r\n\t\t\tnums[3] = nums[2] % 100;\r\n\t\t\tnums[2] = Math.floor(nums[2] / 100 + 0.1);\r\n\t\t}\r\n\treturn nums[0] + \"-\" + toDigit2(nums[1]) + \"-\" + toDigit2(nums[2]) +\r\n\t\t\"T\" + toDigit2(nums[3]) + \":\" + toDigit2(nums[4]) + \":00\";\r\n}\r\n/**\r\n * 文字列から先頭の1個の整数を平成の年としてを取り出し、西暦年に変換する。\r\n * [例]\r\n * parseHyear(\"平成23年\") == 2011\r\n * parseHyear(\"H23\") == 2011\r\n * parseHyear(\"23\") == 2011\r\n * @param str 半角または全角の数字の文字を含む文字列\r\n * @return 西暦年\r\n */\r\nfunction parseHyear(str) {\r\n\tvar nums = pickupNumZ(str, false);\r\n\treturn \"\"+ (nums[0] + 1988);\r\n}\r\n\r\n/**\r\n * 文字列から平成の年月日として取り出し、西暦年月日に変換する。\r\n * [例]\r\n * parseHdate(\"平成23年9月24日\") == \"2011-09-24\"\r\n * parseHdate(\"H23.12.4 (晴)\") == \"2011-12-04\"\r\n * parseHdate(\"23.9.24\") == \"2011-09-24\"\r\n * @param str 半角または全角の数字の文字を含む文字列\r\n * @return 西暦年月日\r\n */\r\nfunction parseHdate(str) {\r\n\tvar nums = pickupNumZ(str, false);\r\n\treturn (nums[0] + 1988) +\"-\"+ toDigit2(nums[1]) +\"-\"+ toDigit2(nums[2]);\r\n}\r\n\r\n/**\r\n * 文字列から月日を取り出す。\r\n * [例]\r\n * parseMMDD(\"9月24日 雨\") == \"09-24\"\r\n * parseMMDD(\"9.24 (晴)\") == \"09-24\"\r\n * parseMMDD(\"10.24\") == \"10-24\"\r\n * @param str 半角または全角の数字の文字を含む文字列\r\n * @return 月日\r\n */\r\nfunction parseMMDD(str) {\r\n\tvar nums = pickupNumZ(str, false);\r\n\treturn toDigit2(nums[0]) +\"-\"+ toDigit2(nums[1]);\r\n}\r\n\r\n/**\r\n * 文字列から時分を取り出しす。\r\n * [例]\r\n * parseHHmm(\"9時23分\") == \"09:23\"\r\n * parseHHmm(\"9.3\") == \"09:03\"\r\n * parseHHmm(\"午後9時3分\") == \"21:03\"\r\n * parseHHmm(\"-\") => 00:00\r\n * @param str 文字列\r\n * @return 時分\r\n */\r\nfunction parseHHmm(str) {\r\n\tvar nums = pickupNumZ(str, false);\r\n\tif (nums.length < 2) return \"00:00\";\r\n\tif (str[0] == \"後\" || str[1] == \"後\")\r\n\t nums[0] += 12;\r\n\tif (nums.length > 1)\r\n\t\treturn toDigit2(nums[0]) +\":\"+ toDigit2(nums[1]);\r\n\telse\r\n\t\treturn toDigit2(nums[0]) +\":00\";\r\n}\r\n\r\n/**\r\n * 1桁の数字の前に\"0\"を補って2桁にする。\r\n * [例]\r\n * twoDigits(\"12月\") == \"12\"\r\n * twoDigits(\"1日\") == \"01\"\r\n * @param num 半角または全角の数字の1贈ォ2桁の数字を含む文字列\r\n * @return 2桁の数字\r\n */\r\nfunction twoDigits(str) {\r\n\tvar nums = pickupNumZ(str, false);\r\n\treturn toDigit2(nums[0]);\r\n}\r\n\r\n/**\r\n * yy.mm.dd形式のymd(yyは平成の年)とhh:mm形式の時分をYYYY-MM-DDThh:mm:00形式の時刻に変換する。\r\n * makeDate1(\"平23.8.31\",\"9:55\") == \"2011-08-31T09:55:00\"\r\n * @param ymd yy.mm.dd形式の年月日(yyは平成の年) (string)\r\n * @param hm hh:mm形式の時分 (string)\r\n * @return YYYY-MM-DDThh:mm:00形式の時刻(string)\r\nfunction makeDate1(ymd,hm) {\r\n if (ymd.length == 0 || hm.length == 0) return \"\";\r\n for(var i = 0; ymd[i] < '0' || '9' < ymd[i]; i++);\r\n ymd = ymd.substring(i);\r\n var yymmdd = ymd.split('.');\r\n var year = parseInt(yymmdd[0]) + 1988;\r\n var month = yymmdd[1];\r\n if (month.length == 1) month = '0' + month;\r\n var day = yymmdd[2];\r\n if (day.length == 1) day = '0' + day;\r\n var i = hm.indexOf(':');\r\n var hour = hm.substring(0, i);\r\n if (hour.length == 1) hour = '0' + hour;\r\n var minute = hm.substring(i+1);\r\n if (minute.length == 1) minute = '0' + minute;\r\n return year +'-'+ month +'-'+ day +'T'+ hour +':'+ minute +':00';\r\n}\r\n */\r\n\r\nfunction makeDate1(ymd,hm) {\r\n if (ymd.length == 0 || hm.length == 0) return \"\";\r\n for(var i = 0; ymd[i] < '0' || '9' < ymd[i]; i++);\r\n ymd = ymd.substring(i);\r\n var yymmdd = pickupNumZ(ymd, false);\r\n if (yymmdd[0] > 2000) {\r\n var year = parseInt(ymd.substring(8,10)) + 1988;\r\n var month = ymd.substring(5,7);\r\n var day = ymd.substring(2,4);\r\n } else {\r\n var yymmdd = ymd.split('.');\r\n var year = parseInt(yymmdd[0]) + 1988;\r\n var month = yymmdd[1];\r\n if (month.length == 1) month = '0' + month;\r\n var day = yymmdd[2];\r\n if (day.length == 1) day = '0' + day;\r\n }\r\n var i = hm.indexOf(':');\r\n var hour = hm.substring(0, i);\r\n if (hour.length == 1) hour = '0' + hour;\r\n var minute = hm.substring(i+1);\r\n if (minute.length == 1) minute = '0' + minute;\r\n return year +'-'+ month +'-'+ day +'T'+ hour +':'+ minute +':00';\r\n}\r\n\r\n/**\r\n * yy.mm.dd形式がPDF変換によりdd.mm.yyと認識され、\r\n * 20dd-mm-yyT00:00:00.000に変換される場合の対応。\r\n * YYYY-MM-DDThh:mm:00形式の時刻に変換して返す。\r\n * @param ymd yy.mm.dd形式の年月日(yyは平成の年) (string)\r\n * @param hm hh:mm形式の時分 (string)\r\n * @return YYYY-MM-DDThh:mm:00形式の時刻(string)\r\n */\r\nfunction makeDate1x(ymd,hm) {\r\n //var yymmdd = ymd.split('.');\r\n var year = parseInt(ymd.substring(8,10)) + 1988;\r\n var month = ymd.substring(5,7);\r\n var day = ymd.substring(2,4);\r\n var i = hm.indexOf(':');\r\n var hour = hm.substring(0, i);\r\n if (hour.length == 1) hour = '0' + hour;\r\n var minute = hm.substring(i+1);\r\n if (minute.length == 1) minute = '0' + minute;\r\n return year +'-'+ month +'-'+ day +'T'+ hour +':'+ minute +':00';\r\n}\r\n\r\n/**\r\n * 「YYYY」形式の年、「数字+文字」形式の月、「hh」形式の時間、「mm」形式の分から、YYYY-MM-DDThh:mm:00形式の時刻に変換して返す。\r\n * @param year 「YYYY」形式の年(string)\r\n * @param mmdd 「数字+文字」形式の月。たとえば\"8月17日\" (string)\r\n * @param hour 「hh」形式の時間(string)\r\n * @param minute 「mm」形式の分(string)\r\n * @return YYYY-MM-DDThh:mm:00形式の時刻(string)\r\n */\r\nfunction makeDate2(year, mmdd, hour, minute) {\r\n var nums = pickupNums(mmdd);\r\n var month = nums[0];\r\n if (month < 10) month = '0' + month;\r\n var day = nums[1];\r\n if (day < 10) day = '0' + day;\r\n return year +'-'+ month +'-'+ day +'T'+ hour +':'+ minute +':00';\r\n}" }, "database_resource_url": "http://wedata.net/databases/UStoreScriptFunction8", "created_by": "test", "name": "日付の変換", "created_at": "2012-03-08T17:03:41+09:00", "updated_at": "2013-10-16T13:55:54+09:00" })