webew
Войти » Регистрация
 
PHP
JavaScript
MySQL/MariaDB

День программиста

12 сентября 2008, 15:05
Автор: bur
Сегодня (12 сентября, 2008) - 256-ой по счету день в году. По традиции он считается профессиональным праздником программистов.

Всем камрадам, независимо от того на чем вы пишите, желаю чистого кода и отсутствия багов!
Добавить комментарий
Отображение комментариев: Древовидное | Плоское
NO USERPIC

rgbeast

Присоединяюсь к поздравлениям! Желаю всем программистам работать в хороших командах.

Кто не верит, что дата расчитана верно, вот вычисление:
mysql>SELECT "2008-01-01" + INTERVAL 255 DAY\G
"2008-01-01" + INTERVAL 255 DAY: 2008-09-12

Предлагаю в этой ветке описать как провести этот расчет на разных языках.
12.09.2008, 15:09
Ответить

bur

На JavaScript:

alert(
    new Date(
        (new Date(2008, 0, 1)).getTime() + (1000*60*60*24*255)
    )
);
12.09.2008, 15:20
Ответить
NO USERPIC

rgbeast

На C:

#include <stdio.h>
#include <time.h>

int main(char** argv, int argc) {
  struct tm tm;
  time_t t;
  strptime("1 Jan 2008 4:00:00", "%d %b %Y %H:%M:%S", &tm);
  tm.tm_isdst = -1;
  t = mktime(&tm);
  t += 255*24*60*60;
  puts(ctime(&t));
  return 0;
}


$ g++ time256.cpp -o time256
$ ./time256
Fri Sep 12 05:00:00 2008

Из этой программы видно, что был переход на летнее время на час вперед.
12.09.2008, 15:36
Ответить

paulus

#! /usr/bin/perl

use DateTime;

my $dt = DateTime->from_day_of_year(year => 2008, day_of_year => 256);
print $dt->ymd . "\n";
12.09.2008, 15:58
Ответить
NO USERPIC

kyctapb

#!/usr/bin/perl

# perl без модулей подсчитывает текущий день:

$c = (localtime)[7];
$c++;
print "$c\n";


второй вариант:

#!/usr/bin/perl

# perl без модулей просто поздравляет с праздником, если 256 день

$curday = (localtime)[7];
print "Happy holiday!\n" if $curday == 0xFF;
12.09.2008, 16:24
Ответить
NO USERPIC

rgbeast

второй вариант поздравляет и завтра и послезавтра, если день >= 256
12.09.2008, 16:40
Ответить
NO USERPIC

kyctapb

пива много не мало (% лажа вышла, вычеркиваем
12.09.2008, 17:01
Ответить

1234ru

<?php

$format = 'd.m.Y';

// правильным было бы вычислить количество секунд вручную
// но PHP допускает вольности, и функция mktime() может принимать любые "неправильные" даты (только не вылезать за 1970-2038)
// а поскольку мы ищем легкие пути, то воспользуемся этим:
$ts = mktime(0, 0, 0, 1, 256); // последний аргумент - год - не указываем, поэтому он берется равным году текущей даты, чего нам и надо
echo date($format, $ts);

// кто не верит - можно убедиться:
$ts_right = mktime(0, 0, 0, 1, 1) + 60*60*24*255;
echo "<br/>";
echo date($format, $ts_right);;

?>
То, что не убивает нас, делает нас инвалидами.
12.09.2008, 16:12
Ответить
NO USERPIC

Sign

Вы действительно не ищете лёгких путей)
echo strftime('%j',strtotime('2008-09-12'));
12.09.2008, 17:22
Ответить
NO USERPIC

Sign

или так)
echo date('z')==0xFF ? 'Happy holiday!' : 'Был бы повод...';
12.09.2008, 17:35
Ответить
NO USERPIC

rgbeast

а на C/C++ проще способ можете предложить?
12.09.2008, 20:30
Ответить

1234ru

Ну, это если знать точно, какое число (предполагается, что это неизвестно; например, в високосные года это будет не 12, а 11 сентября).
То, что не убивает нас, делает нас инвалидами.
13.09.2008, 19:41
Ответить
Добавить комментарий
Отображение комментариев: Древовидное | Плоское
© 2008—2024 webew.ru, связаться: x собака webew.ru
Сайт использует Flede и соответствует стандартам WAI-WCAG 1.0 на уровне A.
Rambler's Top100

Реклама: