• ベストアンサー

Perlで60進数を作りたい

Perlで月盤の60進数を作って頂きたいんです。 西暦2008年12月=1 西暦2009年1月=2 西暦2009年2月=3 ・・・ 西暦2013年11月=60 アルゴリズムを教えてください。 宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • cotae_bb
  • ベストアンサー率53% (51/95)
回答No.1

2008年12月が1になって2013年11月が60になるようにすればいいんですか? Perlはやったことないので、考え方だけ書きます。 (質問の意味を間違って解釈していたらすみません) 基準となる年月(2008/12)を用意します。(以下A) 比較対象の年月を用意します。(以下B) それぞれの年, 月をYear, Monthとします。 BのYearからAのYearを引いた値をDYear BのMonthからAのMonthを引いた値をDMonth とします。 DYearは年ですから、月に直すために×12をする必要があります。 また、基準年月の値が0ではなく、1なので+1する必要があります。 DYear * 12 + DMonth + 1 これで値が算出できると思います。 60毎に区切る必要があれば割ったり余りを出してください。 基準年月を2008/12 対象年月を2013/11 として計算してみます。 2013 - 2008 = 5 (DYear) 11 - 12 = -1 (DMonth) 5 * 12 + (-1) + 1 = 60 >Perlで月盤の60進数を作って頂きたいんです。 プログラムの質問で作ってくださいとかありえません。 自分で作りましょう。

その他の回答 (2)

  • ssk38
  • ベストアンサー率44% (22/49)
回答No.3

60進数 上の桁はあるの?60分で1時間みたいな。 基準は2008/12が1なの?

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.2

sub get_getsuban { return ($_[0]*12+$_[1]+12) % 60 + 1 ; } $year = 2008 ; $month = 12 ; printf "%d\n", get_getsuban($year, $month) ; http://okwave.jp/qa/q6601898.html の#2のRubyのプログラムを、ほぼそのままPerlに書き直しただけです。

関連するQ&A