上半期、下半期の現在の期末日を取得する方法

このQ&Aのポイント
  • 上半期、下半期の現在の期末日を取得する方法を紹介します。
  • 期末日の年月日を求めるためには、現在の日付と上期、下期の情報を活用します。
  • 具体的な方法は、年と月を取得し、現在の日付から上期、下期の月数を引いて求めることができます。
回答を見る
  • ベストアンサー

上半期、下半期の現在の期末日を取得する方法

現在の期末日の年月日を取得したいのですが、 どのようにすれば求められるでしょうか? <? // 上期4/1~9/30、下期10/1~3/31とする場合 $kamiki = 4; $shimoki = 10; $now_year = date("Y"); $now_mon = date("m"); // 今日が 5月の場合、本年2003/9/30 // 今日が11月の場合、翌年2004/3/31を返したいです ?> 3時間、mktime(),date()などで考えましたが、 結局、年が変わる所で頭が一杯で わかりませんでした(T_T) よろしく願いします。

  • PHP
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
  • youki64
  • ベストアンサー率33% (3/9)
回答No.1

末期の月日はどの月でもすぐ取得できますよね。 4月~9月なら9月の末日、それ以外なら3月の末日。 2月以外の月の末日は常に固定なので、3/31・9/30でOK。 あとは年ですが、今月が10月より上なら本年+1、 10月未満なら本年が年になると考えればOKかなと 思います。 一度混乱してしまったときは、PHPだとかを考えずに、 紙などに書いてみるのも一つの手ですよ。 9月ならいつになるかなとか、1月ならいつになるかなとか。

matchori
質問者

お礼

紙に書く癖をつけたいと思います(^^) ありがとうございました。

関連するQ&A

  • 差分の月数を算出する方法

    午前中に差分の日数を算出する方法は教えて頂けたのですが、 月数を算出する方法が分からなく困っています。 2007/08/27 13:00 2007/07/31 00:00 この時、差分は1ヶ月としたいです。 日数は考慮せず、あくまで年月のみで算出を行いたいです。 但し、1ヶ月はその年月の末日と同値です。 今やってる処理はこんな感じです。 $now = mktime(0, 0, 0, $now["tm_mon"], 1, $now["tm_year"]); $paradate = mktime(0, 0, 0, $paradate["tm_mon"], 1, $paradate["tm_year"]); $diff = strtotime($now) - strtotime($paradate); ここまではいいと思うのですが、次に以下のような処理を行っています。 (途中まで書いて、だめじゃんと思った状態) $select = $diff / (60 * 60 * 24); ここで何をやりたいかと言うと、何ヶ月の差分があったかを求めたいのです。 しかし、タイムスタンプの差分を求めた日付(ここでは$paradate)が何月で、末日が 何日だからその分を差し引く、その次の月の末日が何日だからその分を 差し引く~・・・ としていかないと正しい差分が求められないと思うのです。 (28, 29, 30, 31の末日の差がある為) どうすれば簡単に処理できるのでしょうか? どなたかご教示下さい。 足りない情報がありましたら随時補足致します。

    • ベストアンサー
    • PHP
  • 忘れられない「期末日」の思い出ありますか?

    本日9月30日は、3月決算企業にとって、「上期」の最終日、つまり「期末日」であり、特に経理や営業などを担当されている方にとっては、これまでの会社人生の中で色々思い出の多い日の一つだと思います。同様の日としては、文字通り期末日である3月31日や、年末の仕事納めの日もありますね。 しかも今日は金曜日、仕事の後、同僚で一杯飲みに出かけた方も多いと思います。 このような「期末日」の思い出を色々聞かせて下さい。過ぎし半年間や一年間の仕事の達成感を皆で分かち合い、大きな喜びを感じた方も多いでしょうし、飲みすぎてとんだ失敗をされた方もあるでしょう。

  • EXCELで、ある月が含まれる四半期末日の年月日を

    EXCELで、ある月が含まれる四半期末日の年月日を表示する方法 60歳に到達する誕生日(年月日)から、その月が含まれる四半期末日の年月日を表示する数式を知りたいです。 誕生月が4月~6月なら6月末日、7月~9月なら9月末日という具合です。 (例:2021年5月5日が60歳の誕生日なら2021年6月30日と表示したい) 各セルには下記の内容が入っています。 H5 ⇒ 生年月日(●年●月●日)     K5 ⇒ 60歳に到達する年月日の数式 =DATE(YEAR(H5)+60,MONTH(H5),DAY(H5)) N5 ⇒ K5から月を抜き出す数式 =MONTH(H5) O5 ⇒ K5の月が含まれる四半期末月 =CHOOSE(N5,3,3,3,6,6,6,9,9,9,12,12,12)&"月" O5セルにK5から年を抜き出し、CHOOSEの式、末日を表示する式EOMONTHを繋げようとするとエラーになってしまいます。 ○年○月末日と表示できる方法があれば教えてください。 H5以外は表示する必要のないセルなので、上記の数式にこだわらず一番スマートな方法を教えていただけますと幸いです。 よろしくお願い致します。

  • EXCELで日付を****年上期、****年下期で表現する関数

    EXCELで、例えば、A1セルに2005/02/23 というような形式で日付が入力されています。 会社では4月1日~9月30日までを上期、 10月1日~翌年3月31日までを下期としています。 2005/02/23は2004年下期 2004/08/15は2004年上期 2004/10/17は2004年下期 2005/04/01は2005年下期 と表現するような関数を教えてください。

  • 入力された年月からその月の末日を取得する

    import java.util.*; class Sample { public static void main(String[] args) { System.out.println(args[0]); Calendar cal = Calendar.getInstance(); cal.set(2000,1,1); int y = cal.get(Calendar.YEAR); int m = cal.get(Calendar.MONTH) + 1; int last = cal.getActualMaximum(Calendar.DATE); System.out.print(y + "年" + m + "月の末日は "); System.out.println(last + "日です"); } } で、2000年2月の末日を取得することが出来るのはわかったのですが プログラム上で年月の入力を促してその月の末日を取得するにはどうすればいいのでしょうか? (プログラム実行例) C:\JAVA\SAMPLE>java Sample 2009 2 2009年2月の末日は 28です ↑のようにプログラム上で年 月を入力して実行し、末日を取得したいのですが・・・ 多分この場合、入力数値などに対する例外処理や閏年の処理などもやらないとダメだと思いますがよくわかりません

    • ベストアンサー
    • Java
  • 日付取得、計算及び表示コードが動作しません。

    日付取得、計算及び表示コードが動作しません。 下記のコードのどこが間違っているのか、どなたかお分かりですか? このコードでは、今日の日付をサーバから取得し、それから10日後の日付を計算して表示したいです。 $currentdate = .getdate(); $yyyy = $currentdate["year"]; $mm = $currentdate["mon"]; $dd = $currentdate["mday"]; $int_day = 10; $duedate = .date("y/m/d", mktime(0, 0, 0, $mm, $dd+$int_day, $yyyy)); echo "$duedate" また、上記のコードが動作するようになったとして、表示される日付は「2008/06/10」のようになるかと思いますが、これを「2008年06月10日」のように表示させる方法をご存知でしょうか? >$duedate = .date("y/m/d", mktime(0, 0, 0, $mm, $dd+$int_day, $yyyy)); 上記コードを下記のように変更してもだめです。 >$duedate = .date("y年m月d日", mktime(0, 0, 0, $mm, $dd+$int_day, $yyyy)); よろしくお願いします。

    • ベストアンサー
    • PHP
  • 下期の売上データを作っているのですが・・・

    会議のため下期の売上データを作るように言われているのですが、下期と言ったら、1月から12月の場合、7月から12月の売上のことでいいのでしょうか。 上期は当然1月から6月の売上が出ているのですが、下期は1月からのトータルなのか、7月からなのかわけわからなくなり、でもこんなこと?聞けずに悩んでいます。 無知ですみません教えてください!

  • Excel2003での西暦下2桁“年”表示について

    Excel2003を使って以下の計算をした場合の西暦下2桁“年”表示がどうしても うまくいきませんので、どなたかお分かりになる方、ご回答をお願いします。 (例)日付としてセルA1に2005/12/30と入力されており、それを元にセルB1に関数を使って    西暦下2桁:05を取り出し、セルC1に05/下期とセット後、その翌期を表示させるため、    05+1と計算し、セルD1に06/上期と表示させたいのですが、どうしても    6/上期としか表示されず、頭に0がつきません。    表示形式で00/上期、00/下期と設定したり、色々と試したのですがどれもダメでした。    [補足]4~9月を上期、10~3月を下期として表示。

  • 設定日から指定日数後の日付の取得

    全く初心者の質問ですみません。 設定日から指定日数後の日付を取得したいと思っています。 echo $date // 正しい設定日がY-m-dで表示されます date ("Y-m-d", mktime (0,0,0,date('m',$date),date('d',$date) + $add_date,date('Y',$date))); で取得できると思ったのですが、常に1970-01-01が返されます。 先ほどecho $dateで設定した日付が表示されるにもかかわらず、 print_r(getdate($add_date)); とすると [seconds] => 31 [minutes] => 33 [hours] => 9 [mday] => 1 [wday] => 4 [mon] => 1 [year] => 1970 [yday] => 0 [weekday] => Thursday [month] => January [0] => 2011 と1970-01-01が返されます。 何故でしょうか?

    • ベストアンサー
    • PHP
  • 1ヶ月後の日付を出力したい

    1ヶ月後の日付を出力したいのですが $tomorrow = mktime (0,0,0,date("m")+1,date("d"),date("Y")); phpマニュアルで上記のようなものを使って、 1970年1月1日からの通算秒を得ることが出来ましたが それとlocationtimeを使ってどうにか1ヶ月後の年月日を出せるようなのですが… やり方がどうしても分かりません。 いろいろ試したんですが、どつぼにハマって行くだけで…。 すみません、誰か助け舟を出して下さい お願いします

    • ベストアンサー
    • PHP