2009年10月18日日曜日

和暦→西暦+曜日算出

よくよく考えてみると、
西暦に戻すと、月日は関係ないのかも。

ということで、一気に仕上げた。

曜日まで出すよ。


  1. $(function(){  
  2.     $('#convertButton').click(function(){  
  3.         var d = $('#date_text').val();  
  4.         $('#result').html(d.getSeireki('漢字'true));  
  5.     });  
  6. });  
  7.   
  8. var weeks = ["日","月","火","水","木","金","土"];  
  9.   
  10. String.prototype.getSeireki = function(pattern, day) {  
  11.     var ret = this.match(/[0-9]+/g);  
  12.     var wareki = '';  
  13.     var year = -1;  
  14.     var month = -1;  
  15.     var date = -1;  
  16.     if (ret.length == 1) {  
  17.         year = ret[0];  
  18.         wareki = this.substring(0,this.indexOf(ret[0]));  
  19.     } else if (ret.length == 2) {  
  20.         year = ret[0];  
  21.         wareki = this.substring(0,this.indexOf(ret[0]));  
  22.         month = ret[1];  
  23.     } else if (ret.length == 3) {  
  24.         year = ret[0];  
  25.         wareki = this.substring(0,this.indexOf(ret[0]));  
  26.         month = ret[1];  
  27.         date = ret[2];  
  28.     } else {  
  29.         return '';  
  30.     }  
  31.       
  32.     var result = '';  
  33.     if ("昭和" == wareki || "S" == wareki) {  
  34.         result = parseInt(year) + 1925;  
  35.     } else if ("平成" == wareki || "H" == wareki) {  
  36.         result = parseInt(year) + 1988;  
  37.     } else if ("大正" == wareki || "T" == wareki) {  
  38.         result = parseInt(year) + 1911;  
  39.     } else if ("明治" == wareki || "M" == wareki) {  
  40.         result = parseInt(year) + 1867;  
  41.     }  
  42.       
  43.     var divYear = '';  
  44.     var divMonth = '';  
  45.     var divDate = '';  
  46.     if (pattern == undefined || pattern == '漢字') {  
  47.         pattern = 1;  
  48.         divYear = '年';  
  49.         divMonth = '月';  
  50.         divDate = '日';  
  51.     } else if (pattern == '-') {  
  52.         pattern = 2;  
  53.         divYear = '-';  
  54.         divMonth = '-';  
  55.         divDate = '';  
  56.     } else if(pattern == '/') {  
  57.         pattern = 3;  
  58.         divYear = '/';  
  59.         divMonth = '/';  
  60.         divDate = '';  
  61.     } else {  
  62.         pattern = 3;  
  63.     }  
  64.       
  65.     if (ret.length == 1) {  
  66.         return result + divYear;  
  67.     } else if (ret.length == 2) {  
  68.         return result + divYear + month + divMonth;  
  69.     } else if (ret.length == 3) {  
  70.         var dispDay = '';  
  71.         if (day == true) {  
  72.             var strDate = result + '/' + (month) + '/' + date;  
  73.             var d = new Date(strDate);  
  74.             var youbi = weeks[d.getDay()];  
  75.             if (pattern == 1) {  
  76.                 dispDay = ' ' + youbi + '曜日';  
  77.             } else if (pattern == 2 || pattern == 3) {  
  78.                 dispDay = ' (' + youbi + ')';  
  79.             }  
  80.         }  
  81.         return result + divYear + month + divMonth + date + divDate + dispDay;  
  82.     }  
  83. }  

0 件のコメント:

コメントを投稿