2010-02-26 6 views
0

Как написать программу високосного года в одной строке с помощью PHP?Как написать программу високосного года в одной строке с помощью PHP?

+1

Укажите, что вы подразумеваете под високосный год? Это может означать много вещей. –

+18

Не прикасайтесь к клавише ввода. – Quentin

+0

С большим использованием тернарного оператора ... – Skilldrick

ответ

15

Это как знать это с помощью одной строки кода :)

print (date("L") == 1) ? "Leap Year" : "Not Leap Year"; 
+1

Еще короче: '$ isLeapYear = (дата (" L ") == 1);' – Gordon

+2

@Gordon: Это правда, но я просто хотел распечатать вывод :) – Sarfraz

+0

Спасибо за помощь – streetparade

2
$nextyear = mktime(0, 0, 0, date("m"), date("d"), date("Y")+1); 
+0

Ах! Извините, я не знал смысла високосного года. Но я буду держать этот «ответ» здесь, если люди попадут сюда с вопросом, который, как я думал, вы спрашивали! –

3

Поскольку не существует никаких ограничений в том, как долго строка кода, если вы не используете код конвенции как у Zend Framework, вы можете использовать любые работы и писать в одну строку. Конечно, в зависимости от функциональности вашей видовой программы этого, вероятно, будет сложно поддерживать. Я видел унаследованный код, содержащий более 800 символов с PHP, HTML и CSS. Я могу рассказать вам о кровотечении.

4

if (($year % 400 === 0) || (($year % 100 !== 0) && ($year % 4 === 0))) echo "leap";

+0

От http://stackoverflow.com/questions/3220163/how-to-find-leap-year/#11595914 'if (year & 3) == 0 && ((year% 25)! = 0 || (год & 15) == 0) { /* високосный год */ } ' –

+0

Я бы не хотел поддерживать этот код. Бит-операции для чего-то, что является только арифметикой, являются загадочными. Первоначальный ответ, который вы цитируете, рассматривается как производительность, поэтому в некоторых случаях это может быть актуальным. Но для всех остальных случаев я бы предпочел сохранить читаемое выражение. –

+0

Обычно я размещаю URL-адрес в комментарии, когда что-то загадочно; или, поместите код в функцию типа «IsLeapYear», где ясно, что он делает. Поскольку григорианский календарь не меняется в ближайшее время, я не думаю, что «ремонтопригодность» вызывает большую озабоченность. Этот код может быть более чем в два раза быстрее и даже в десять раз быстрее в 8-битных встроенных системных CPU, где нет инструкции деления. –

1

даты ("L"); даже короче.

if(date("L")){ 
    //leap year 
} else { 
    //not leap year 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^