Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как узнать какой завтра день в Windows? date -jv +1d +%d но в Windows 
:(
    Опции темы
stan777
Дата 14.3.2007, 13:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 29.1.2007

Репутация: нет
Всего: нет



Как узнать какой завтра день в Windows?
Может есть какой-нибудь модуль который выполнял бы date -jv +1d +%d но в Windows ?
PM MAIL   Вверх
arto
Дата 14.3.2007, 13:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1495
Регистрация: 31.10.2004

Репутация: 38
Всего: 40



>perl -MPOSIX=strftime -le "print strftime """%c""",localtime time+24*60*60"
15.03.2007 12:38:33
PM MAIL ICQ   Вверх
stan777
Дата 14.3.2007, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 29.1.2007

Репутация: нет
Всего: нет



Да спасибо, понял 
Код

print localtime(time()+86400)->[3]."\n";


Это сообщение отредактировал(а) stan777 - 14.3.2007, 15:11
PM MAIL   Вверх
tishaishii
Дата 17.3.2007, 20:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Создатель
***


Профиль
Группа: Завсегдатай
Сообщений: 1262
Регистрация: 14.2.2006
Где: Москва

Репутация: 4
Всего: 8



Цитата
print localtime(time()+86400)->[3]."\n";

так нельзя.
А надо так:
Код
print +(localtime 60*60*24+time)[3], "\n";

PM MAIL ICQ Skype   Вверх
stan777
Дата 18.3.2007, 23:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 29.1.2007

Репутация: нет
Всего: нет



Цитата(tishaishii @ 17.3.2007,  20:10)
Цитата
print localtime(time()+86400)->[3]."\n";

так нельзя.
А надо так:
Код
print +(localtime 60*60*24+time)[3], "\n";

Если нельзя, то объясни почему нельзя, так как перл мне лично говорит что можно smile. И даже в Юниксе на это не ругается smile
Не знаю как у тебя, а у меня это не работает 
Код
print +(localtime 60*60*24+time)[3], "\n";


Это сообщение отредактировал(а) stan777 - 18.3.2007, 23:55
PM MAIL   Вверх
amg
Дата 19.3.2007, 09:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1145
Регистрация: 3.8.2006
Где: Новосибирск

Репутация: 38
Всего: 50



stan777, выражение tishaishii совершенно логично, и оно правильно работает. 
При интерпретации твоего выражения (со стрелкой) перл пытается использовать строку, возвращаемую функцией localtime, в качестве ссылки на массив. Это не выглядит правильным, и при использовании use strict перл отказывается работать. Возможно, такое поведение зависит от версии перл, у меня - так. Даже если твое выражение работает, лучше его не использовать, т.к. весьма не просто понять, почему оно работает (или не работает). Выражение же tishaishii прозрачно.
В твоем выражение, чтобы оно было правильным, нужно заставить localtime возвращать списочный контекст и оформить его в виде ссылки:
Код

print [localtime(time+86400)]->[3]."\n";

PM MAIL   Вверх
stan777
Дата 19.3.2007, 10:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 29.1.2007

Репутация: нет
Всего: нет



Цитата(amg @ 19.3.2007,  09:32)
stan777, выражение tishaishii совершенно логично, и оно правильно работает. 
При интерпретации твоего выражения (со стрелкой) перл пытается использовать строку, возвращаемую функцией localtime, в качестве ссылки на массив. Это не выглядит правильным, и при использовании use strict перл отказывается работать. Возможно, такое поведение зависит от версии перл, у меня - так. Даже если твое выражение работает, лучше его не использовать, т.к. весьма не просто понять, почему оно работает (или не работает). Выражение же tishaishii прозрачно.
В твоем выражение, чтобы оно было правильным, нужно заставить localtime возвращать списочный контекст и оформить его в виде ссылки:
Код

print [localtime(time+86400)]->[3]."\n";

Ах да, я же использую модуль Time отсюда и такая странная работа программы smile, при включении этого модуля то что писал tishaishii работать не будет, а при выключении модуля за работает smile. Прошу прощения что все напутал smile.
да действительно, [localtime(time+86400)] так правильней спасибо.


Это сообщение отредактировал(а) stan777 - 19.3.2007, 10:21
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0734 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.