LINUX.ORG.RU

Как по дате узнать наименование дня недели? Необходимо уточнение.

 


0

1

Выполнил:

#!/bin/bash
#

NOMER_MONTH=`date +%m`;
YEAR=`date +%Y`;
DAYS=( `seq 19 25` );

[ "$NOMER_MONTH" -lt 10 ] && NOMER_MONTH='0'$NOMER_MONTH

for i in ${DAYS[@]}; do
    NOMER_DAY=$i
    [ "$NOMER_DAY" -lt 10 ] && NOMER_DAY='0'$NOMER_DAY

    control_date="$NOMER_DAY/$NOMER_MONTH/$YEAR"

    j=`date --d=$control_date +'%A'`
    echo "$i ($control_date) =-->.. $j ($NOMER_DAY)"
done
Получил:
..
19 (19/05/2014) =-->.. Воскресенье (19)
20 (20/05/2014) =-->.. Среда (20)
21 (21/05/2014) =-->.. Суббота (21)
22 (22/05/2014) =-->.. Понедельник (22)
23 (23/05/2014) =-->.. Четверг (23)
24 (24/05/2014) =-->.. Суббота (24)
25 (25/05/2014) =-->.. Вторник (25)
..
Результат не корректный


Ответ на: комментарий от bsm
date --d="2014-05-19" +'%A'

плюс:

$ man date
...
       %D     date; same as %m/%d/%y
...
       %F     full date; same as %Y-%m-%d
...

anonymous
()
Ответ на: комментарий от bsm
for Day in $(seq 20 30); do date +"%A ($Day)" -d "2014-05-$Day"; done
Вторник (20)
Среда (21)
Четверг (22)
Пятница (23)
Суббота (24)
Воскресенье (25)
Понедельник (26)
Вторник (27)
Среда (28)
Четверг (29)
Пятница (30)

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от bsm

--date=23/05/2014

что это?

date --date=23/05/2014 +%A
date: неверная дата <<23/05/2014>>

locale
LANG=ru_RU.koi8-r
LC_CTYPE="ru_RU.koi8-r"
LC_NUMERIC=C
LC_TIME="ru_RU.koi8-r"
LC_COLLATE="ru_RU.koi8-r"
LC_MONETARY="ru_RU.koi8-r"
LC_MESSAGES="ru_RU.koi8-r"
LC_PAPER="ru_RU.koi8-r"
LC_NAME="ru_RU.koi8-r"
LC_ADDRESS="ru_RU.koi8-r"
LC_TELEPHONE="ru_RU.koi8-r"
LC_MEASUREMENT="ru_RU.koi8-r"
LC_IDENTIFICATION="ru_RU.koi8-r"
LC_ALL=
Eddy_Em ☆☆☆☆☆
()

Результат не корректный

GIGO

У тебя на входе date UTC+0 (ты его просто не задал), а у меня UTC+4. Потому у меня твой говнокод показывает сегодня вчерашний день. У тебя тоже.

А чего ты ждал?

emulek
()
Ответ на: комментарий от bsm

Приношу свои извинения,- я не верно указывал дату,- dd/mm/yyyy, а необходимо- mm/dd/yyyy. Спасибо всем. Тема закрыта.

bsm
() автор топика
Ответ на: комментарий от Eddy_Em

вот так будет работать:

$ date -d05/23/2014
Пт май 23 00:00:00 MSK 2014

но полночь по Гринвичу была в четверг. А что тут удивительного? Даты они тоже разные, у них четверг, у нас пятница.

Что бы такой хрени не было, надо ВСЕГДА считать UTC+0, и переводить только на входе и выходе. А ТС не перевёл на выходе. И получил четверг.

emulek
()
Ответ на: комментарий от bsm

я не верно указывал дату

а, точно. У тебя вообще всё перепуталось, а я думал только сдвинулось.

emulek
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.