Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Определение високосного года php
Форумы портала PHP.SU » PHP » Программирование на PHP » Определение високосного года php

Страниц (1): [1]
 

1. alexa77 - 20 Декабря, 2016 - 12:47:42 - перейти к сообщению
Нужно создать форму и написать скрипт определяющий по нажатию на кнопку ОПРЕДЕЛИТЬ является ли введенный год високосным. Форму создала, написала скрипт, но он не работает

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. function isleap( $year )
  3. {
  4.     if( $year % 4 == 0 )
  5.         # Год високосный
  6.        echo 'Год високосный';
  7.     else
  8.         # Год не високосный
  9.        echo 'Год не високосный';
  10. }
  11. echo isleap(2000);
  12. ?>
  13.  
2. OrmaJever - 20 Декабря, 2016 - 13:02:16 - перейти к сообщению
3. Sail - 20 Декабря, 2016 - 15:25:44 - перейти к сообщению
alexa77, или, если считать самим:
Цитата:
...год является високосным в двух случаях:
либо он кратен 4, но при этом не кратен 100;
либо кратен 400
4. alexa77 - 20 Декабря, 2016 - 20:48:45 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1.  <?PHP
  2. function isleap( $year )
  3. {
  4.     if( $year % 4)!= 0) {
  5.                 echo "Год не високосный";
  6.         }
  7.         else
  8.                 if ( $year % 100)!= 0) {
  9.                         echo "Год високосный";
  10.                 }
  11.                 else
  12.                         if ( $year % 400)!= 0) {
  13.                                 echo "Год не високосный";
  14.                         }
  15.                         else  echo "Год високосный";
  16. }
  17. if (isset($_GET['god'])){
  18.   $god=intval($_GET['god']);
  19.   echo isleap(2000);
  20. } else echo "Error";
  21. ?>
  22.  


Правильный?
5. Строитель - 20 Декабря, 2016 - 22:53:05 - перейти к сообщению
alexa77, скопируйте код целиком
Спойлер (Отобразить)
6. Sail - 21 Декабря, 2016 - 09:27:41 - перейти к сообщению
alexa77, проще так:
PHP:
скопировать код в буфер обмена
  1. if($year % 4 == 0 && $year % 100 != 0 || $year % 400 == 0) { /* some operator... */}

Но это лишь для Григорианского календаря. Для Юлианского - проще Улыбка
К тому-же системные функции иногда имеют особое мнение на тему високосности года...
Да и Excell от MS этим грешит (якобы для совместимости с давними табличными процессорами иных производителей... /lotus/)...
7. alexa77 - 21 Декабря, 2016 - 12:15:29 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1.  function isLeap($year) {
  2.     return date('L', mktime(0, 0, 0, 1, 1, $year));
  3. }

Не могли бы вы пояснить как работает эта функция
8. Sail - 21 Декабря, 2016 - 15:24:48 - перейти к сообщению
alexa77 пишет:
PHP:
скопировать код в буфер обмена
  1.  function isLeap($year) {
  2.     return date('L', mktime(0, 0, 0, 1, 1, $year));
  3. }

Не могли бы вы пояснить как работает эта функция

Нет ничего проще: date — Форматирует вывод системной даты/времени
Ну и в довесок о функции mktime: mktime — Возвращает метку времени Unix для заданной даты.

 

Powered by ExBB FM 1.0 RC1