The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"выборка в промежутке даты"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Shell скрипты)
Изначальное сообщение [ Отслеживать ]

"выборка в промежутке даты"  +/
Сообщение от rahc email(ok) on 09-Ноя-11, 23:35 
Не могу понять как сделать следующее:
есть скрипт вида

#!/bin/bash
edate=`cal|xargs|awk '{print $NF}'`
for ((i=1;i<$edate+1;i++));
do
printf "`date +%Y-%m`-%02u\n" "${i}";
done

дает текущий месяц

дальше
echo "Прошлое воскресение:        `date --date="last sunday" +%F`"
#date --date="sunday" +%F
echo "Следующее воскресение:      `date --date="this sunday" +%F`"
echo "Воскресение через 1 неделю: `date --date="sunday 1 week" +%F`"
echo "Воскресение через 2 недели: `date --date="sunday 2 week" +%F`"
echo "Воскресение через 3 недели: `date --date="sunday 3 week" +%F`"

как их соединить вместе для любого месяца
поясню нужно чтоб скрипт выше выводил все воскресения месяца
то есть он выводил
2011-11-01
...
2011-11-06!
2011-11-07
...
2011-11-13!
2011-11-14
...
2011-11-20!
...
2011-11-27!
2011-11-28
...
2011-11-30

Спасибо.

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "выборка в промежутке даты"  +/
Сообщение от allez (ok) on 11-Ноя-11, 10:52 
> как их соединить вместе для любого месяца

Можно передавать номер месяца как аргумент команды cal.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "выборка в промежутке даты"  +/
Сообщение от rahc email(ok) on 11-Ноя-11, 17:09 
>> как их соединить вместе для любого месяца
> Можно передавать номер месяца как аргумент команды cal.

не стал я заморачиваться сильно и сделал все просто

for ((i=1;i<$edate+1;i++));
do
eval="`date +%Y-%m`-$i";
echo "$eval -" >>$tableb;
done
for ((i=1;i<$edate+1;i++));
do
eval="`date +%Y-%m`-$i";
if [[ $eval == $sunlast ]]; then
   echo "$eval" >>$tablea;
else
  if [[ $eval == $sunnext ]]; then
   echo "$eval">>$tablea;
  else
   if [[ $eval == $sun1week ]]; then
    echo "$eval">>$tablea;
   else
  if [[ $eval == $sun2week ]]; then
   echo "$eval">>$tablea;
  else
if [[ $eval == $sun3week ]]; then
  echo "$eval">>$tablea;
else
  echo "$eval -">>$tablea;
fi
fi
  fi
fi
fi
done
так

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру