電子書籍の厳選無料作品が豊富!

Perlで月盤の60進数を作って頂きたいんです。

西暦2008年12月=1
西暦2009年1月=2
西暦2009年2月=3
・・・
西暦2013年11月=60

アルゴリズムを教えてください。
宜しくお願い致します。

A 回答 (3件)

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進数を作って頂きたいんです。
プログラムの質問で作ってくださいとかありえません。
自分で作りましょう。
    • good
    • 0

60進数


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

sub get_getsuban {


return ($_[0]*12+$_[1]+12) % 60 + 1 ;
}

$year = 2008 ;
$month = 12 ;

printf "%d\n", get_getsuban($year, $month) ;



http://oshiete.goo.ne.jp/qa/6601898.html
の#2のRubyのプログラムを、ほぼそのままPerlに書き直しただけです。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!