おしえて№985 投稿者  LISApapaさん
  数学やエクセルが得意な方にお聞きしたいことがあります。私事ですが、現在5歳の娘がおり、今年で結婚10周年を迎えます。
さて、結婚してから娘が誕生するまでの日数をAとし、生まれてからの日数をBとしたときに、A=Bとなるのが何年何月何日かを求める計算式を教えていただけないでしょうか?よろしくお願いいたします。。
アイコンのご説明
LISApapaさん(自己レス)

ユリウス日*を使うという手がありましたね。
このサイトが便利です。↓
参考URL:別館
http://hi.sakura.ne.jp/~nmaeda/web/jd_calc.shtml

LISApapa@2438117ユリウス日生まれ

*「ユリウス日」“Julian Day”(略号は“JD”)
ユリウス日は、世界時の4712年(BC4713年)1月1日12時を0とした通日(つうじつ)の値。
ただ、ユリウス日の2400000.5日を新起算日とする「準ユリウス日」“Modified Julian Day”(略号は“MJD”)を使ったほうがいいかも。


さぶさん

もっとスマートな計算式があるかと思いますが…。
ただ、「結婚日からお嬢さんが誕生するまでの日数をAと、生まれてからの日数をBが同じになるの日」をお知りになりたいならば。

(お嬢さんの生まれた日)+(結婚日からお嬢さん誕生までの日数)で出ますよね?ということで、
セルA1に結婚日を入れ、セルB1にお嬢さんの誕生日を入力します。
そして、セルC1に「=B1-A1」といます。(セルC1の書式設定を「標準」にしておくとわかりやすいです)
最後に、セルD1に「=B1+C1」と入れます。(書式設定を「日付」にしておきましょう)

セルD1に標示された日付が、その日だと思うのですが、いかがでしょう?

その日はなんだかとても特別な日ですね。何か記念になることをなさるのでしょうか?
素敵ですね〜。(^^)

ヤコピさん

Excelはとても簡単です。
A1に結婚記念日、B1に誕生日を入力すると、結婚から誕生日までの日数はB1-A1です。
そして誕生日にこの日数を加えれば求める日付になるので、
式は、=B1+(B1-A1) となります。

これを真面目に数学で求めようとすると、閏年や月の大小の関係でかなり面倒です。
基本的には、年月日はそのままでは演算できないので、すべて日数に換算して、
計算後に年月日形式に戻すという考え方で、Excelも内部的にはこの方式です。


例として、結婚記念日が1993/3/03、誕生日が1998/4/04の場合を計算してみます。

まず、年月日形式から日数への換算ですが、最初に起点となる日付を設定します。
ここで西暦元年1月1日を起点としてしまうと汎用的にはなりますが、
400で割り切れず100で割り切れる年は平年という規則まで考慮せねばならず、計算が繁雑になります。
1901年〜2099年にはこの規則に該当する年はなく、単純に4の倍数が閏年とみなせるので、
1901年1月1日を第0日とすることにします。

まず、1993/3/03の年数を日数に換算します。
すべて平年と考えて、1901年からの年数に365を掛けます。
(1993−1901)×365=33580
次に、この日数にこの期間の閏年の数を加えます。
33580+(1993−1901)÷4=33603

次に、1993/3/03の月日を日数に換算します。
これは1月〜2月までの月の日数と03を足して求められます。
(もしこの年が閏年ならば、2月は29とします)
31+28+03=62

最後に、上の2つを足したものが求める日数です。
33603+62=33665…(1)

同様に、1998/4/04 についても計算します。
年数の換算
(1998−1901)×365=35405
35405+(1998−1901)÷4=35429
月日の換算
31+28+31+04=94
求める日数
35429+94=35523…(2)

結婚から誕生までが(2)−(1)なので、誕生日の(2)にこの日数を加えれば求める日数になります。
(2)+(2)−(1)=35523+35523−33665=37381

最後にこれを年月日に変換します。
まず、全部平年と考えて365で割ります。
37381÷365=102年、余り151日

余りからその期間の閏年の数を引きます。(引けない場合は年数から1を引き日数に365を加え、再計算)
151−(102÷4)=126日

この年数に1901を加えたものが求める西暦です。
1901+102=2003年

余りからは1月の日数、2月の日数、、と順に引き、引けない月と余りの日数が求める月日です。
(やはりこの年が閏年ならば、2月は29とします)
126−31(1月)−28(2月)−31(3月)−30(4月)=6日

以上から、2003年5月6日となります。

うさぎさん
 
これはあまり難しくはありません。
例えば、セル A1 B1 C1 を使って見ましょう。

まず、セルを日付として定義します。
やり方は 書式→セル→表示形式→日付 でOKです。


セル A1 に結婚の日付を、B1 に誕生日を yyyy/mm/dd
の形式で入力します。


次に セル C1 に =B1+(B1-A1) と入力します。
そうするとご希望の日付が表示されます。


日数を知りたいときは、とこかのセルに =B1-A1 と入れて下さい。
お知恵を貸していただける方は、こちらから送って下さいね。
 お名前 (ニックネーム)
 
 メールアドレス
 
 答えていただける番号は?(半角数字:例 116)
 
 回答はこちらから
 
回答についてのお願いです。

1.基本的に送って下さった回答については大部分の回答を掲載させていただきます。
  しかしながら、閲覧の都合等で掲載しない場合や,若干の修正&加工をする場合もありますのでご了承下さい。
  また、メルマガ等に掲載する場合もありますので併せてご了承下さいね。


2.著作権等に配慮したいので情報源があれば、明記もお願いしまーす。
  例)★参考URL「おしえてねどっとこむ」  http://www.ooooo 
     ★広辞苑から抜粋 ★○氏著作○○から抜粋
など

  
ただし、参考先の方針等によって、その部分を削除する場合がありますのでご了承下さい。
  
特に丸ごとのカットアンドペーストは掲載が出来なくなりますのでご注意下さいね。

3.もし、正答か面白回答かと私が迷いそうな回答を出して下さる時は、ぜひ、最初の一文に
  「○おもしろだよ!」もしくは「○正答さ!」などと分かるようにカキコしてくれると本当に助かります。
  是非よろしくお願いします。m(__)m

4.既に出されている回答に明らかな誤りを発見した場合などは批判にならないような回答、もしくはメールでのご連絡いただけると助かります。ご協力をお願いします。

[ホームへ]