1. PHP / Говнокод #5435

    +162

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    function get_doc_status($date_valid) {
    	$cur_mk = mktime(0, 0, 0, date("m"), date("d"), date("Y"));
    	$date_valid = explode(".", $date_valid);
    	$valid_mk = mktime(0, 0, 0, $date_valid[1], $date_valid[0], $date_valid[2]);
    
    	if($valid_mk <= $cur_mk) {
    		return 2;
    	}
    
    	$month = intval($date_valid[1]);
    	$year = intval($date_valid[2]);
    
    	if(($month > 1) && ($month < 12)) {
    		$prev_month = $month - 1;
    		$prev_year = $year;
    	} elseif($month == 1) {
    		$prev_month = 12;
    		$prev_year = $year - 1;
    	}
    
    	$month_mk = 60 * 60 * 24 * 30;
    	$prev_mk = mktime(0, 0, 0, $prev_month, $date_valid[0], $prev_year);
    
    	if(($valid_mk - $prev_mk) <= $month_mk) {
    		return 1;
    	}
    	return 0;
    }

    Задача со слов автора:
    Есть определенная дата (что-то типа срока годности), есть текущая дата. Задача заключается в выводе статуса даты.
    1. До истечения срока больше месяца - функция возвращает 0
    2. До истечения меньше месяца - 1
    3. Срок истек - 2

    Товарисчь не знал про time() и strtottime().

    Запостил: WhiteRat, 29 Января 2011

    Комментарии (4) RSS

    • Очередной велосипед манипуляций с датами..., и как получается создавать такие ГК? один краше другого)
      Ответить
      • Да ну что вы прямо так категоричны, автор даже объявил это своей интеллектуальной собственностью :))))
        Ответить
        • Да, чем меньше знаний, тем больше амбиций
          Чем больше узнаешь, тем больше понимаешь, что ты нехрена не знаешь
          Ответить
          • Ну и зря вы все так категорично. Человек научился. Теперь то уж он наверное знает про другие функции. В школе такие задачки специально дают. Решить то-то не используя это и это. Другой вопрос, что это учит не совсем правильной парадигме программирования, но программировать учит.
            Ответить

    Добавить комментарий