- 締切済み
PHPでの日数の求め方
PHPで日数を求める処理を作りたいのですが 検索して同じ様な質問をもとに下記のように作成したのですがうまくいきません。 教えてください。 登録処理日(本日)が予約日の10日以上前なら「仮予約」を 登録処理日(本日)が予約日の10日以内なら「本予約」を表示したい 但し、11月1日から11月10日の日数は10日とする考え方で日数を求めたいのです。 登録処理日($tourokuday)が11月21日の場合 予約日($yoyakudate)が11月30日は「本予約」 予約日($yoyakudate)が12月1日は「仮予約」と表示したいのですが $tourokuday=strtotime(date("Y-m-d")); if(strtotime($yoyakudate) - $tourokuday <= 10*24*60*60) { printf("本予約です"); } else { printf("仮予約です"); } 上記で処理を行うと両日とも「本予約」と表示されます プラス1日を加えればいいと思いますがどのようにしたらいいのかわかりません。 質問が解りずらいかもしれませんが宜しくお願いします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- sakusaker7
- ベストアンサー率62% (800/1280)
- Wabisuke_S
- ベストアンサー率55% (5/9)
- inter1217
- ベストアンサー率0% (0/0)
- galluda
- ベストアンサー率35% (440/1242)
関連するQ&A
- 先月の日数を求める関数にうるう年を適応するかどうか
お世話になります。 今年2月はうるう年ではありませんが下記のPHP関数において、 ■指定した月の日数 <?php echo date('t', strtotime('-1 month')); ?> これは、表示させると先月((month-1)月)の日数「31」を吐き出すのですが、 この関数にはうるう年処理は設定されているのでしょうか? もしPHP5にこの処理がなければ自分でうるう年処理を作成しようとしております。 ご返事お待ちしております。宜しくお願い致します。
- ベストアンサー
- PHP
- 日数を計算する方法
以下のようにして変数の配列を使って、 月の日数を格納しています。 int mon[12]={31,28,31,30,31,30,31,31,30,31,30,31}; これを使って、 元旦から入力された月日の日数を計算したいのですが どの様にすればいいですか? 例えば、 4月5日の場合は、 1月 31日 2月 28日 3月 31日 4月 5日 なので「95日」 ---------------- 途中までのプログラム #include<stdio.h> main(void) { int yy, mm, dd; int mon[12]={31,28,31,30,31,30,31,31,30,31,30,31}; printf( "西暦を入力しなさい" ); scanf( "%d", &yy ); printf( "月を入力しなさい" ); scanf( "%d", &mm ); printf( "日を入力しなさい" ); scanf( "%d", &dd ); /* うるう年判定 */ if (((yy%4==0)&&(yy%100!=0))||(yy%400==0)) mon[1]=29; else mon[1]=28; ・ ・
- ベストアンサー
- C・C++・C#
- 人生を日数にするとおよそ28,855日長いですか?
人生を日数にするとおよそ28,855日長いですか? (仮に日本人男性の平均寿命が79歳として) 人間って日にち換算すると3万日も生きないのですね。 私は、ちょっと短い気もしています。 一日一日を大切に、丁寧に生きなくちゃと思いました。 長いと感じますか?短いと感じますか? 注意:批評・批難・中傷・質問に対する質問はご遠慮下さい。
- ベストアンサー
- その他(恋愛・人生相談)
- 近鉄定期1ヶ月の日数計算について
近鉄定期の1ヶ月の見方があれば教えてください。 ひと月30日や31日、2月だと28日という日数の違いがあると思います。 1ヶ月定期として購入した場合、その辺りはどのように処理されるのでしょうか。 私が思い浮かべるのは A)単純に日にち通りで 2月2日開始~3月1日まで B)基準日数が設定されていて30日なら 2月2日開始~3月3日まで この辺りなのですが… ご存知の方がいらっしゃいましたら教えてください。 2月14日から1ヶ月定期を購入予定です。 もしAの方法で処理されるなら3月1日から購入した方がおとくかも…と悩んでいます。 よろしくお願いします。
- 締切済み
- 路線・駅・電車
- shtmlファイルでのif文
質問させていただきます。 htmlファイルへの埋め込みだとうまくいくのですが、 shtmlファイルへ下記スクリプトを埋め込むと、 『あかさたな!")); break; } else { printf(""); break; } } ?> 』 とスクリプトの部分まで表示されてしまいます。 この消し方(『あかさたな』とだけ表示させたい)をご存知の方、 お教えください。 <? $dir = opendir("./aaa/bbb/ccc"); $latestfile = 0; while ($fnm = readdir($dir)) { if($fnm == "." || $fnm == "..") continue; $ftime = filectime("./aaa/bbb/ccc/$fnm"); $nowdate =strtotime(date("Y-m-d")); if(strtotime($nowdate) - $ftime <= 7*24*60*60) { printf("<FONT size="2"><B>あかさたな</B></FONT>"); break; } else { printf(""); break; } } ?>
- ベストアンサー
- PHP
- 日数を求める計算方法について
日数を求める計算方法について A1:開始日入力、B1:終了日を入力しました。 単純にB1-A1にした結果の日数が開始日か終了日のどちらかが含まれず1日少ない日数です。 やり方が違うのでしょうかカウントの基本も合わせて教えて下さい。 開始日も終了日も両方カウントされるものだと理解してます。これ違いますか? 年/月/日で表示させています。
- ベストアンサー
- その他(インターネット・Webサービス)
- 稼働日数について質問します。月平均稼働日数は、4月1日~3月31日と1
稼働日数について質問します。月平均稼働日数は、4月1日~3月31日と1月1日~12月31日のどちらを基準に数えればいいのでしょうか。それとも毎月稼働日数を数えた方がいいのでしょうか?前に、社労士さんに、1年の稼働日数を12か月で割った方が良いとアドバイスを受けた事もありましたが、以前に比べ、祝祭日が多くなり毎月の変動が大きくなったような気がします。実際のところ皆さんはどのようにしているのでしょうか。宜しくお願いいたします。
- ベストアンサー
- 財務・会計・経理
- この年間休日日数ってやはり少ないでしょうか?
昨日ハローワークである求人を見つけまして早速本日面接の予約をとりました。しかし一つ気になっている事があります。それは年間休日日数が87日なんです。私としてはプライベートの時間も大切にしたいほうなんであまりに休日が少ない会社は合いません。せめて隔週休土曜日は確保したいところです。 職安の職員の方にも言われたんですがこの日数ではおそらく隔週休土曜日ではなく月一回土曜日休みがあるかないかといったところでしょうねと指摘されました。自分としてはこの点が大変ひっかかってて昨日からすごく悩んでいて今日の面接辞退しようかどうか悩んでます。 やはりこの休日日数だと隔週休土曜日ものぞめない状況でしょうか? ぜひご助言願います!
- ベストアンサー
- 転職
- 西暦・月からカレンダーを表示
問題文 西暦・月を入力してカレンダーを表示するプログラムを作成せよ。 プログラム全体のことを考える。プログラムの流れとしては、つぎのようになるであろう。 (1)変数の宣言: プログラムの中で使う変数や配列等をすべてここに集めておく。 (2)入力: キーボードから、西暦年の値を読み取る ← scanf( ) 関数 1月から12月まで、以下を繰り返す。 (3)カレンダーの年・月の表示: (例えば、2008年1月 と表示) (4)各曜日名の表示: 「日 月 火 水 木 金 土」と表示 (5)月の日数の算出: 月の最後の日を計算しておく。(*1~12月以外では誤りとすること) (6)曜日の算出: 月の初めの日(ついたち)の曜日をツェラー公式で計算しておく。 (7)空列の表示: ついたちの前の空白部分を表示する ← for文 を利用。 (8)各日の表示: 月の各日を順に表示していく ← for文を利用 (土曜の後に改行を入れる) #include <stdio.h> int leapYear(int year) { if (year%400==0||(year%4==0 && year%100!=0)) { return 1; } else { return 0; } } int main(void) { int d,year,m,i; int day[12] = {31,28,31,30,31,30,31,31,30,31,30,31}; /*1~12月までの各月の日数*/ printf("西暦を入力してください:"); scanf("%d",&year); printf("月を入力してください:"); scanf("%d",&m); if(m!=1 & m!=2 & m!=3 & m!=4 & m!=5 & m!=6 & m!=7 & m!=8 & m!=9 & m!=10 & m!=11 & m!=12)/*1~12月以外で日数を出そうとした場合*/ { printf("入力が誤っています。やりなおしてください。\n"); } else{ if (leapYear(year)==1)/*閏年の場合*/ { printf("%d年は閏年です。\n",year); day[1] +=1; } else/*閏年でない場合*/ { printf("%d年は閏年ではありません。\n",year); } i = (year+year/4 -year/100 +year/400 + ( 13*m+8 )/5 + 1) % 7; /*西暦~年・1~12月の1日の曜日について考える*/ printf("日 月 火 水 木 金 土\n"); (7)・・・ (8)・・・ } return 0; } 手順に沿ってやっていく課題なのですが(7)、(8)の部分の表現の仕方が良く分かりません。(求めた月の日数をカレンダー形式に表示する方法・1日の前に空白を入れる等) 過去の質問も見たのですが、いまいち理解できず・・・orz どなたかご教授お願いできないでしょうか・・・。
- ベストアンサー
- C・C++・C#
- (C言語)西暦年月日を入力して、その日の曜日を表示させるプログラムを試したのですが…
西暦年月日を入力して、その日の曜日を表示させるプログラムを作りたいのですが、とりあえず、やってみましたが… int main(void) { int i,y,m,d,dy,dw; int D[]={0,31,28,31,30,31,30,31,31,30,31,30,31}; printf("Year?"); scanf("%d",&y); printf("Month?"); scanf("%d",&m); printf("Day?"); scanf("%d",&d); for(i=0;i<=m-1;i++){ dy = d + D[i] ; } if(m>=3){ if(y % 4 == 0){ if(y % 400 == 0){ dy = dy + 1 ; } else if(y % 100 ==0){ dy = dy ; } else{ dy = dy + 1 ; } } else if(y % 4 == 1 || y % 4 == 2 || y % 4 == 3 ){ dy = dy ; } } dw = (dy -1 + ( y + ( y - 1 )/4 - ( y - 1 )/100 + ( y - 1 )/400))%7 ; if (dw == 0) printf("Sunday\n"); else if (dw == 1) printf("Monday\n"); else if (dw == 2) printf("Tuesday\n"); else if (dw == 3) printf("Wednesday\n"); else if (dw == 4) printf("Thursday\n"); else if (dw == 5) printf("Friday\n"); else if (dw == 6) printf("Saturday\n"); return 0 ; } このプログラムを各年の1月1日~2月28日で試してみると、うまくいくのですが、3月1日に入るとなぜかうまく働いてくれません。(ちなみに2005年の11月では偶然うまくいっています。)その理由が分からないのでどなたか教えてください。ちなみに、この一連のプログラムを行うにはもっと簡単に行える関数というかコマンド?みたいなものがあるようですが、基本的に各年の1月1日を、 (y+(y-1)/4-(y-1)/100+(y-1)/400)%7で(0:Sunday~)、同年の○月○日は1月1日から△日経過しているという考え方で、曜日を割り出すプログラムにしなければならないといけないので、注文が多いですがよろしくお願いします。
- ベストアンサー
- C・C++・C#
お礼
ご丁寧に説明までありがとうございます。 とても参考になりました。