Автор Тема: Не текущий день недели  (Прочитано 4905 раз)

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

Гость

  • Гость
Не текущий день недели
« : 06 Сентября 2002, 08:57:39 »
Передо мною стоит задача. Нужно определить день недели, при заданных: год, месяц, число.
При этом в моем распоряжении только базовый набор модулей.
Буду рад советам и помощи.

ВВЕДИТЕ СВОЕ ИМЯ

  • Гость
Не текущий день недели
« Ответ #1 : 06 Сентября 2002, 12:57:47 »
$aaa=(localtime $DATE)[6];
print "$aaa";

где $DATE - полное время всекундах с начала эпохи, его можешь подсчитать сам ;-))

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
Не текущий день недели
« Ответ #2 : 06 Сентября 2002, 13:07:20 »
О сколько нам открытий чудных, готовит прочтение ФАК в этом разделе. Можно его даже распечатать, но лучше раз 10 переписать от руки.

ЗЫ. "Все уже украдено до нас" (С) Операция "Ы"
The documentations is your friend

Оффлайн Serchey

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 216
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.rivne.ukrtelecom.ua
Не текущий день недели
« Ответ #3 : 06 Сентября 2002, 17:35:24 »
#!/usr/bin/perl -w
use strict;

my $date = \'2002-09-06\';

sub dayofweek {
 my @years = (0, 2, 3, 4);
 my @month = (undef, 0, 3, 3, 6, 1, 4, 6, 2, 5, 0, 3, 5);
 my @days = (\'Sun\', \'Mon\', \'Tue\', \'Wed\', \'Thu\', \'Fri\', \'Sat\');

 my $date = shift;
 my ($yy, $mm, $dd) = split(/\\-/, $date);

 $dd =~ s/^0//;
 $mm =~ s/^0//;
 my($tmp, $a, $b, $c, $e);
 $tmp = $yy - 1996;
 $a = $tmp & 3;
 $b = ($tmp >> 2) + ($tmp & hex("FC"));
 $c = $month[$mm];

 if($a == 0 && $mm > 2){$c++;}
 $a = $years[$a];
 $e = ($a+$b+$c+$dd) % 7;

 return $days[$e];
}

print "The day($date) is: ".dayofweek($date)."\\n"

Оффлайн USE

  • Любитель
  • Ветеран
  • *****
  • Сообщений: 720
  • +0/-0
  • 2
    • Просмотр профиля
Не текущий день недели
« Ответ #4 : 06 Сентября 2002, 22:27:36 »
Цитировать
О сколько нам открытий чудных, готовит прочтение ФАК в этом разделе. Можно его даже распечатать, но лучше раз 10 переписать от руки.


http://forums.webscript.ru/announcement.php?s=&forumid=14#q6.4

как раз случайно посмотрел его :) и аж самому смешно стало :)
Не ходите, дети, без «Мозиллы» дальше localhost!

Оффлайн Serchey

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 216
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.rivne.ukrtelecom.ua
Не текущий день недели
« Ответ #5 : 07 Сентября 2002, 00:48:40 »
Но мне и так хорошо!... :) Чё эт я должен зависить от каких-то там модулей!?

Гость

  • Гость
Не текущий день недели
« Ответ #6 : 09 Сентября 2002, 12:40:05 »
Спасибо!

Гость

  • Гость
Не текущий день недели
« Ответ #7 : 09 Сентября 2002, 12:43:43 »
Кстати, фак я читал о написания этого поста в форуме. Однако, сравните сказанное там и сказанное здесь. Предлагаю его дополнить постом Serchey.
Еще раз спасибо!

Гость

  • Гость
Не текущий день недели
« Ответ #8 : 10 Сентября 2002, 17:08:08 »
Знаю, замучил, но очередной вопрос:
При попытке задать нечто вроде

my $date = \'$year-$mon-01\';

Происходит не задача. Как устранить это?
Еще больший глюк происходит при попытке

$d = .dayofweek($date).;
print "The day($date) is: "$d"\\n"

Что делать.
Варианты про прочтению книги Чернышевского прошу опустить :D

Гость

  • Гость
Не текущий день недели
« Ответ #9 : 10 Сентября 2002, 17:11:01 »
Знаю, надоел, но все же 2 вопроса по этому коду:
Не срабатывает подобная запись

my $date = \'$year\\-$mon\\-$day\';

500 ошибка при:

$d = ".dayofweek($date).";
print "The day($date) is: "$d"\\n"

Как избавиться от этих проблемм?

Оффлайн Mog.

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 828
  • +0/-0
  • 0
    • Просмотр профиля
Не текущий день недели
« Ответ #10 : 10 Сентября 2002, 17:29:33 »
Цитировать
Не срабатывает подобная запись
my $date = \'$year\\-$mon\\-$day\';

попробуй
my $date = "$year-$mon-$day";

Цитировать
500 ошибка при:

$d = ".dayofweek($date).";
print "The day($date) is: "$d"\\n"


Еще бы.
Попробуй так
$d = dayofweek($date);
print  "The day($date) is: $d\\n";
Все болезни от нервов, только сифилис от удовольствия

Гость

  • Гость
Не текущий день недели
« Ответ #11 : 10 Сентября 2002, 17:56:14 »
Спасибо, все работает :)
my $date = "$year-$mon-$day";
Здесь я про двойные кавычки забыл... Бывает :(

Оффлайн Serchey

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 216
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.rivne.ukrtelecom.ua
Не текущий день недели
« Ответ #12 : 10 Сентября 2002, 19:47:37 »
Ну вы, блин, даёте!!! :)

Гость

  • Гость
Не текущий день недели
« Ответ #13 : 10 Сентября 2002, 20:08:26 »
Бывает... :D

 

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