From: siena@... (Siena. / SHINAGAWA, Norihide) Date: 2004-01-21T15:19:15+09:00 Subject: [ruby-dev:22651] Re: Time#[+-] when given a negative argument Siena. です。 # しばらく英文を書きにてんてこ舞いで、なかなか手が ;_; ▼ akr さん < [ruby-dev:22619] 》れにせよ + や - の引数が signed な time_t には収まらないケースがあるた 》め、むしろ引数の表現には time_t は使わずに、time_t と同じサイズの 》unsigned で表現するとしたほうがいいかもしれません。ただ、time_t と同じ 確かにそのようにする方がより良さそうです。 double から time_t にして演算するのではなく、dounle で 演算してから結果を time_t に戻す方が簡単かもしれないと 思いましたが、time_t が 64bit の環境では仮数部の桁溢れに 注意しないとならないので、すっぱりとは行かないのですね。 》また、不恰好というのは sign の存在を表現している気がするのですが、もし 》そうだとしたら、+ と - の処理で引数に負が来たら符号を反転してもう一方 》に任せるようにすると sign なしで書けると思います。 はい。sign で場合分けしている点と、time_plus() と time_minus() で 原理的には同じコードが重複している点を指していました。 リファクタリングすべきかなと思いながらも、やっつけ仕事で 済ましてしまったので。ちょっと気になっていたのでした。 --- Siena.