Автор Тема: мучения с нулем  (Прочитано 5601 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Yaroslav

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 323
  • +0/-0
  • 0
    • Просмотр профиля
мучения с нулем
« : 12 Июля 2006, 17:10:54 »
если надо постаить ноль перед датой, то это решается так:

(undef,undef,undef,$mday,$mon,$year,undef) = localtime(time);
if ($mday < 10) { $mday="0$mday"; }
if ($mon < 10) { $mon="0$mon"; }
$data="$mday.$mon.$year";

но вот у меня чуть подругому, юзер сам должен стаить дату, а я ноль никак не могу всавить перед ним:

$stdey=$VOTE{stdey}; if ($stday < 10) { $stday="0$stday"; }
print "$stdey
"; #вот не хочет он 01 выдавать....




Никогда не бойся делать то, что ты не умеешь. Помни, ковчег был построен любителем. Профессионалы построили \"Титаник\".

Оффлайн arto

  • Ветеран
  • *****
  • Сообщений: 699
  • +0/-0
  • 2
    • Просмотр профиля
мучения с нулем
« Ответ #1 : 12 Июля 2006, 17:18:25 »
perldoc -f printf

Оффлайн arto

  • Ветеран
  • *****
  • Сообщений: 699
  • +0/-0
  • 2
    • Просмотр профиля
мучения с нулем
« Ответ #2 : 12 Июля 2006, 17:21:33 »
да и $stdey != $stday

Оффлайн Yaroslav

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 323
  • +0/-0
  • 0
    • Просмотр профиля
мучения с нулем
« Ответ #3 : 12 Июля 2006, 17:31:03 »
sprintf - читаю
$stdey != $stday - это почему?
Никогда не бойся делать то, что ты не умеешь. Помни, ковчег был построен любителем. Профессионалы построили \"Титаник\".

Оффлайн Yaroslav

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 323
  • +0/-0
  • 0
    • Просмотр профиля
мучения с нулем
« Ответ #4 : 12 Июля 2006, 17:34:45 »
printf, sprintf - прочитал, ничего не понял, пример можно?
Никогда не бойся делать то, что ты не умеешь. Помни, ковчег был построен любителем. Профессионалы построили \"Титаник\".

Оффлайн commander

  • Developer
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1298
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.webtips.ru
мучения с нулем
« Ответ #5 : 12 Июля 2006, 17:49:02 »
Yaroslav
sprintf("%02d", 1);
And no religion too...

Оффлайн arto

  • Ветеран
  • *****
  • Сообщений: 699
  • +0/-0
  • 2
    • Просмотр профиля
мучения с нулем
« Ответ #6 : 12 Июля 2006, 18:53:50 »
$stdey=$VOTE{stdey}; if ($stday < 10) { $stday="0$stday"; }

присваеваете $stdey, фиговину творите с $stday.

Оффлайн KiLLjoY aka SerZH

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 45
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
мучения с нулем
« Ответ #7 : 23 Июля 2006, 00:27:46 »
length($mday)<2?"0$mday":$mday;

Оффлайн arto

  • Ветеран
  • *****
  • Сообщений: 699
  • +0/-0
  • 2
    • Просмотр профиля
мучения с нулем
« Ответ #8 : 25 Июля 2006, 12:40:40 »
# perl -MBenchmark=timethese -e \'$a = 1; timethese ($ARGV[0],{"A" => sub { return sprintf "%02d",$a; },"B" => sub { return length($a) < 2 ? "0$a" : $a; }})\' 100000000
Benchmark: timing 100000000 iterations of A, B...
         A: 26 wallclock secs (38.18 usr +  0.01 sys = 38.19 CPU) @ 2618486.51/s (n=100000000)
         B: 49 wallclock secs (47.31 usr +  0.02 sys = 47.33 CPU) @ 2112824.85/s (n=100000000)
#

Оффлайн commander

  • Developer
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1298
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.webtips.ru
мучения с нулем
« Ответ #9 : 25 Июля 2006, 15:31:03 »
arto
perl -MBenchmark=timethese -e \'$a = 1; timethese ($ARGV[0],{"A" => sub { return sprintf "%02d",$a; },"B" => sub { return $a < 10 ? "0$a" : $a; }})\' 10000000
Benchmark: timing 10000000 iterations of A, B...
         A: 24 wallclock secs (19.95 usr +  0.00 sys = 19.95 CPU) @ 501174.63/s (n=10000000)
         B: 10 wallclock secs (11.45 usr +  0.00 sys = 11.45 CPU) @ 873720.14/s (n=10000000)
And no religion too...

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28