• ベストアンサー

総日数を求める

引数として与えた西暦・月日から現在の日付までの 総日数を調べる関数が紹介されているページがあれば 教えて下さい。 自分ならこう書く、なんていうのでも結構です。

  • alx
  • お礼率97% (112/115)

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

  • ベストアンサー
  • shige_70
  • ベストアンサー率17% (168/946)
回答No.4

まず、cftime(),mktime() 等で指定日の日付情報をtime_t型にします。 その後、time()で、time_t型の現在時刻を取得します。 取得したそれぞれの値に32400を足してから86400(1日の秒数)で割れば(小数点以下きり捨て)、日本時間で1970年1月1日から何日経過したかという値になりますから、あとは引き算するだけです。

alx
質問者

お礼

ありがとうございました。 mktime() を利用することにしました。 アドバイスありがとうございます。

その他の回答 (3)

noname#5537
noname#5537
回答No.3

汎用的にやるなら, 各日付のユリウス日を求めて,引き算すれば OK です。 ごく最近の年だけでよければ mktime を使うのが簡単です。

参考URL:
http://alfin.mine.utsunomiya-u.ac.jp/~niy/algo/u/ut2jd.html, http://www.okweb.ne.jp/kotaeru.php3?q=644522
alx
質問者

お礼

URLを御紹介いただきありがとうございました。 よく拝見させていただきました。

  • isobeman
  • ベストアンサー率41% (17/41)
回答No.2

どのようなプラットフォームでしょうか? WindowsでMFCが可ならば、 COleDateTime dt1( yyyy, mm, dd ); COleDateTime dt2( yyyy, mm, dd ); COleDateTimeSpan span( dt1 - dt2 ); printf( "%d 日間です", span.GetTotalDays() ); なんてかけます。 汎用性は無いですが、、、

alx
質問者

お礼

ありがとうございました。 MFCではないんですが、MFCを使う時の参考にさせていただきます。

回答No.1

西暦l年における、1月1日から、n月m日までの日数を求める関数を作る(funcA) 西暦l年における、総日数を求める関数を作る(funcB)←つまり、閏年判定 funcB(入力年)-funcA(入力日)で、入力日からその年の末までの日数 funcA(今日)で、今年の今日までの日数 funcBを、入力年の翌年から今年の前年までを回して足す ※入力日や今日をカウントするかどうかで調整のこと

alx
質問者

お礼

ありがとうございました。参考にさせていただきます。

関連するQ&A

  • 日数計算の「-」表記に対する処理方法について

    [パソコン環境のご紹介] アプリケーション環境:ACCESS2007 OS環境:Windows10 [困りごとの内容] 食材管理データベース「消費期限管理」を作りましたが、日数計算の「-数(日)」表記に対する処理方法が分からず困っています。 [やりたいこと] 1、テキストボックス「期限」の日数表記が「-数(日)」になったときに「 0 」か  「空白」で表示させたいと思っています。 2、現在の設定では「数値」のみの表記ですが「日」を追加が可能であれば実現した  いと思います。 [やっていること(オブジェクトの一部にて紹介)] 食材管理フォームに以下のテキストボックスがあり、消費期限日までの日数を表示しています。 ・日付 名前:txt日付(西暦) ・消費期限日 名前:期限日(西暦) ・消費期限日数 名前:期限 ※消費期限日数(期限)テキストボックスのコントロールソースに以下の式を入力しています。 =[期限日]-[txt日付] 以上ですが、よろしくお願いします。

  • 日数の計算です

    エクセルの日付の計算です、初日が2007/11/10から月末までの日数を出す場合なのですが、2007/11/30を入力せず(日付の引き算ではなく、という言い方で正しいのでしょうか?)に、始まりの日から月末までの日数を求めるには、どのような関数になるのでしょうか?よろしくお願いします。

  • エクセルで日数から何カ月かを算出する方法

    エクセルで日数を算出する方法は、日付(西暦)ー日付(西暦)で書式設定を表示設定の数値にすればでるのは分かったのですが、その日数が何カ月かを表示するための方法(数式もしくは、設定)を教えてください。

  • 連続したデータの最大日数を知りたい

    Excel2000を使用しています。 連続したデータ(値)の最大日数を調べたいのです。 たとえば・・・ A列に日付、B列にデータが入っているとします。 B列に1,1,1,1,2,2,1,1,3,・・・となっていて 1が連続した最大日数を求めたいのです。 上記の場合は4日ですので、4を求めたいのです。 この場合どういった関数を使って 計算をすればいいのでしょうか? もうひとつ、その最大日数が何月何日~何月何日に 発生したというのも、分かりますか? 分かりづらい説明で申し訳ありませんが よろしくお願いします。

  • 経過日数を調べたい

    自分の誕生日から現在までの経過日数を算出するには、どういう関数を使ったらよいのでしょうか。 閏年の計算とかもあって、結構難しいプログラムですか?

  • エクセルで実働日数を計算したい

    エクセルで勤怠管理の表を作り、 何月何日に何時間働いたか、についての一覧を作成しました。 その一覧から、簡単に実働日数だけを集計する関数を 入力するにはどのようにすればよいでしょうか? 具体的には例えば 日付  午前  午後  合計時間 7月16日 3    4    7 7月17日(空欄)(空欄) 7月18日 3   (空欄)  3 ・・・ 等の表になっており、 このうち仕事時間が記入されている 7月16日と18日だけをカウントして 2日、という実働日数を出したいのです。 土日が休日、といった感じではなく、 不定期に休みが入るバイトの管理についての 実働日数を出したいのです。 各日付の時間数は午前、午後の合計関数で表示されていますので 合計時間数のセルに計算値が入っている場合のみを カウントすればいいのだと思いますが、 関数の知識がないため、該当関数がわかりません。 どなたかお分かりになる方、 ご教授をお願いいたします。

  • JavaScript で日数の加算をしたい

    Java Scriptを少しずつ勉強しています。 例えば、フォームに西暦「2000」年と入れると、 自動的に「2000年12月31日」から1234日後の日付を表示させるようにしたいです。 どんなふうに書けば、できますか? まだ初心者なのでよろしくお願いいたします。

  • エクセル2002で日数計算

    二つのセルに入れた日付"04/11/25"と"05/7/10"の日数計算、出来れば、土日を除く関数等があれば教えていただけませんでしょうか。

  • Accessでの稼働日数計算の方法

    Accessクエリー上の開始日と終了日までの稼働日数(土日祭日を除く)と開始日から指定した稼動日数だけ経過した日付を求めたい(Excelのnetworkday関数やWorkday 関数と同じ様な事がしたい)のですが。。。何かいい方法はありませんでしょうか? 宜しくお願いします。

  • 日数チェックプログラム

    c++言語で西暦と月を入力してその年月の日数を表示するプログラムを教えてください

専門家に質問してみよう