4年に1回+6、62以上は1の位を値とする式

このQ&Aのポイント
  • 4年に1回+6、62以上は1の位を値とする式について質問があります。
  • 毎年+5をするが、閏年の関係で4年に1回+6となる式を作りたいです。
  • その合計が62以上になったら、1の位を値とする方法を教えてください。
回答を見る
  • ベストアンサー

4年に1回+6,62以上は1の位を値とするような式。

こんばんわ。前回はお世話になりました。 今回 占いの仕組みで 毎年+5をするのですが、 閏年の関係で、4年に1回+6になるという文章が作りたいです。 またその合計が62以上になったら、1の位を値とするとしたいです。 $a=1914; $b=-5+24; while($a <= 2020){ print $b=$b+5; print " "; print $a; print "<br>"; $a++; if ($b >= 62){ $b-60; } if ($? == $?*4){ $b+1; } } if文の入れる位置も分かりませんし、4回に1回6増やす式も分かりません。なので?になっています。 よろしくお願いします。

  • xphp
  • お礼率53% (24/45)
  • CGI
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
回答No.1

n回に1回と言う処理は、剰余を使うのがセオリーです。 $b++ if $a % 4 == 0; ただ、今回の目的って「4年に1回」ではなく「閏年だけ」+6ですよね? $aが閏年か判定する関数を作った方がいいと思われます。(参考URL)

参考URL:
http://d.hatena.ne.jp/perlcodesample/20081012/1223774851
xphp
質問者

お礼

返答ありがとうございます。 関数の勉強をしてからまた来ることにします。 ありがとうございました。

関連するQ&A

  • Excel IF関数を短くする式を教えて下さい。

    ExcelのIF関数が長くなりすぎて困っています。 短くする方法あれば教えてください。 =IF(A1="",0,IF(A1<4.5,A1,4.5))+IF(B1="",0,IF(B1<4.5,B1,4.5)) のように"4.5より数が小さい場合はセルの値を返し、 4.5より大きい場合は4.5を返す"というのを繰り返し合計していきます。 60セル以上を合計したいのですが、それだと数式が長すぎて・・・ 何か短くする良い式があれば教えて下さい。 よろしくお願いします。

  • Excelで飛んだ値を合計する方法

    Excelで飛んだ値を合計する方法を教えてください 例えば A10,A20,A30,A40,A50に値があったとします それをB10に合計値として表示したいと思います その時はA10+A20+A30+A40+A50とすれば位と思いますが もしA60,A70,A80・・・と無限に増えていったとき それをB10に表示するにはどうすればいいでしょうか?

  • IF関数を算出した値を合計する

    こんにちは。 IF関数を使用した値を合計することができない為、お力を下さい。 IF関数で=IF(A1<B1,C,D)と組んだ式ででた値を合計したいのですが 上手くできません。 文字列かと思いセルの書式設定を数値にしたのですができませんでした。 エラーメッセージも出ないため、何が問題なのかがわかりません。 わかることがあれば教えてください。 宜しく御願い致します。

  • 複数回のパターンマッチ

    どうしても複数回のパターンマッチで値が取得できません。 すべてを配列などに代入したのですがどうすればよいのでしょうか? 下記のような感じです。 $str = <<EOF <a>dasfdaf</a><br> asfdafdsa sfatyuytu <a>jkytr</a><br> gjetjt tyurtyu EOF ; if ($str =~ /<a>(.*)<\/a><br>/g) { @list = $1; } よろしくお願い致します。

    • ベストアンサー
    • Perl
  • 値が別窓に渡せない

    今故あってPHPの勉強をしているのですが 別窓に値を渡す方法がぜんぜん検討がつかないので質問させてください。 要点=OKボタンが押された時社員ナンバーを左から見て一致部分一致 した社員データを親窓内で表示させその後表示させた社員データを クリックすると別窓で詳細を表示させる。 別窓内で別のSQL文を組んでそれで社員データを表示させる なにぶんこのようなサイトを利用するのは初めてです。 乱筆乱文にて失礼いたします。 親窓ソースは以下の通り <haed> <title>データ詳細</title> </haed> <body BGCOLOR="#55FFFF"> <form action = "no_rist5.php" method = "post"> <?php $str_url = "********"; $str_user = "********"; $str_pass = "********"; $str_db = "********"; $link = mysql_connect($str_url, $str_user, $str_pass); if ($link == false) { die("MySQLの接続に失敗しました。"); } //dbを選択 $sdb = mysql_select_db($str_db, $link)or die("データベース選択に失敗しました。"); print'<p><Meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">'; $n_01_key = $_POST["a_key"];//01 $n_02_key = $_POST["b_key"];//02 $n_03_key = $_POST["c_key"];//03 $n_04_key = $_POST["d_key"];//04 print "社員コード"; print '<input name="a_key" type = "text" style = "ime-mode:disabled" size = "5" MAXlength = "5" value="'.$n_01_key.'">'; print '<input name="b_key" type = "submit" value="OK"><br>'; print '社員コード、社員名'; print '<br>'; if($n_02_key=="OK") { if(empty($n_01_key)) { print '<br><font size=3 color="#FF0000">社員コードが入力されていません。</font>'; } else { if(!preg_match("/^[0-9]*$/",$n_01_key)) { print '<br><font color="#FF0000">社員コードに数字以外の値が入力されました。</font>'; } else { $a_sql = "SELECT number FROM no_rist WHERE number LIKE '$n_01_key%' ORDER BY number"; $b_sql = "SELECT enp_name FROM no_rist WHERE number LIKE '$n_01_key%' ORDER BY number"; $rs1 = mysql_query($a_sql,$link)or die(mysql_error()); $rs2 = mysql_query($b_sql,$link)or die(mysql_error()); if($rs1!=NULL) { while($arr_item1 = mysql_fetch_assoc($rs1) and $arr_item2 = mysql_fetch_assoc($rs2)) { foreach($arr_item1 as $key1 => $n_03_key) { foreach($arr_item2 as $key2 => $n_04_key) { print '<a href="http://localhost/no_rist6.php" target="rist">'; print '<input name="c_key" type = "submit" value="'.$n_03_key.'">'; print '</a>'; print '<font color="#55FFFF">■■</font>'; print $n_04_key; } } print "<br>\n"; } } else { print '<br><font size=3 color="#ff0000">社員データがありません。</font>'; } } } } print "\n"; mysql_close($link); ?> </form> </body> </html>

    • 締切済み
    • PHP
  • エクセルの式を教えて下さい。お願いします。

    仕事でエクセルを使用しているのですが、どのような式にすればいいのかわからないので教えて下さい。 下記のようなことをやりたいと思っています。 エクセルの、A1=2、A2=3、A3=5を入力し、A4には合計が出力されるようにします。(この場合はA4に表示されるのは、2+3+5なので、10です。) けれど、実際は合計が13でなければなりません。 B4に正しい合計の値、13を入力するだけで、A1~A3の比率に基づいて、B1~B3に比率に基づいた値が表示される式(B1とB2とB3に入力する式)を教えて下さい。 よろしくお願いします。

  • 加算で正しい値がでません

    簡単な計算式なのですが正しい値がでません 正しい値が出るんはどうすればいいのでしょうか ご存知の方教えてください A1~A10 まで数字が入っていてA11で合計をとります このような式がA1~F1(4月~9月)まであります A11~F11は各月の売上合計です A12~A19まで仕入の数値をいれA20で仕入合計を出します これも4月~9月まであります A21で収支差額をだし(式A11-A20) 4月~9月までの累計売上を知りたいので B22にA21+B21 C22にB22+C21,D22にC22+D21・・・ と式を入れているのですが途中から正しく計算されず A21~F21が全て10,000とすれB22が20,000,C22が30,000, D22が30,000,E22も30,000,F22も30,000となります なんどもコピーしたり式を入れなおしても 30,000になるか0になります これはどうしたら正しい値がでるようにできるのでしょうか?

  • A2の値がA1の値と同じ場合はB2にB1の値+1をして

    A2の値がA1の値と同じ場合はB2にB1の値+1をして A2の値がA1の値と違う場合はB2に"1"を繰り返しさせて入力するように 以下としたのですが、A列の値がなくなる限り1が入力されるだけなのですが どうすれば、A列のセルに同じ値が続く場合連番とすることができるでしょうか。お願いします。 range("B1").value = 1 range("B2").select dim 番号 As varient 番号 = activecell.offset(-1, -1).value do until activecell.offset(0,-1).value = "" with activedell if offset(0, -1).value = 番号 then offset(0, 0).value = offset(-1, 0).value + 1 end if offset(0, 0).value = "1" offset(1, 0).select end with loop

  • IF関数「リストの中の値に一致しなければ」

    「A1」の値が「B1:B10」の中の値の どれとも一致しなければ・・・というIF関数は どのように作れば良いでしょうか。 IF(A1<>B1:B10,×,●) かと思ったら違うようなんですが・・・よろしくお願いします!

  • PHPのstrcmp関数について

    PHPのstrcmp関数の動きがよくわかりません。 strcmp (PHP 4, PHP 5) strcmp — バイナリセーフな文字列比較 説明 int strcmp ( string $str1 , string $str2 ) この比較は大文字小文字を区別することに注意してください。 パラメータ str1 最初の文字列。 str2 次の文字列。 返り値 str1 が str2 よりも小さければ < 0 を、str1が str2よりも大きければ > 0 を、 等しければ 0 を返します。 ・・・・・・・・・とマニュアルには上記のようにあります。 聞きたい事!▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼ 1 このstr1がstr2より大きいとはどういうことでしょうか? 2 実際に動きを確認するためにstrcmp関数を他のPHPのビルトイン関数で実現できないのでしょうか? 私の想像では、この関数にあたえる二つの引数を10進数に変換して、値の大きさを比較するという方法なのですが・・。 たとえば <?php $str01 = "a"; $str02 = "b"; print strcmp($str01,$str02); print "<br />"; //上記の値は-1がでるためこの場合 $aのほうが$bより小さいことになる。 //$aの値の文字aが小さいとは?どういうことか //私の、ぱっと思いついた方法は、以下のような意味? $str01 = bin2hex($str01); print $str01 ; //16進数でaという値を表すと61がでる print "<br />"; $str01 = hexdec($str01); print $str01; //10進数でaという値を表すと97がでる print "<br />"; //上記を同じく$bに行うと $str02 = bin2hex($str02); print $str02 ; //16進数でaという値を表すと62がでる print "<br />"; $str02 = hexdec($str02); print $str02; //10進数でaという値を表すと98がでる print "<br />"; print "<hr />"; /* 結果、$aは$bより 【小さい】という事なのでstrcmpは-1を返したと・・・。 こういう事をかんがえてみました。 そしてこれは、普通に考えれば a => bという順序なので アルファベット順になります。 しかしこのやり方だと */ $str03 = "aaaaaaa"; $str04 = "bb"; //と上記のような文字列があった場合同じく同じ手順で値をだすと $str03 = bin2hex($str03); print $str03 ; //16進数でaという値を表すと61616161616161がでる print "<br />"; $str03 = hexdec($str03); print $str03; //10進数でaという値を表すと27410143614427489がでる print "<br />"; //上記を同じく$bに行うと $str04 = bin2hex($str04); print $str04 ; //16進数でaという値を表すと6262がでる print "<br />"; $str04 = hexdec($str04); print $str04; //10進数でaという値を表すと25186がでる print "<br />"; /*ただ上記の方法だと、$str03と$str04を比較すると$str04の【bb】という値の方が 小さくなり順序的には bb => aaaaaaとなりアルファベット順にするとこができない。 三つ目の質問 3 アルファベット順にソートしたいとき標準のsort関数を使わずに他のPHPの標準関数の組み合わせでアルファベット順に並び替える 関数はつくれないのか? どなたか、ご意見お聞かせください。 よろしくお願いします。

    • ベストアンサー
    • PHP

専門家に質問してみよう