LINUX.ORG.RU

В пределах какого времени даты?

Если до Эры UNIX, но после Юлианской эры, то только Юлианские дни помогут. Если же до "юлианской эры", то нафиг там разницу в днях считать?

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

не называю, неграмотен в китайском. да и инструкции на английском всегда есть

anonymous
()

Традиционно: штамп времени это один из вариантов ключа СУБД. И, хотя они («они» это 32битный автоинкремент), занимает столько же места, сравнение 32битных дат требует затрат. Лучше построить базу так, что бы этого сравнения не было. Ты же можешь, я знаю!

ziemin ★★
()
Ответ на: комментарий от Lavos
date: illegal option -- -
usage: date [-jnu] [-d dst] [-r seconds] [-t west] [-v[+|-]val[ymwdHMS]] ...
            [-f fmt date | [[[mm]dd]HH]MM[[cc]yy][.ss]] [+format]
date: illegal option -- -
usage: date [-jnu] [-d dst] [-r seconds] [-t west] [-v[+|-]val[ymwdHMS]] ...
            [-f fmt date | [[[mm]dd]HH]MM[[cc]yy][.ss]] [+format]
-bash: (-)/(60*60*24): syntax error: operand expected (error token is ")/(60*60*24)")
slyjoeh ★★★
()
Ответ на: комментарий от lSergey

И сколько вышло? Напиши уже ответ.

anonymous
()
Ответ на: комментарий от Lavos

а если есть файл с датами в столбик

2015-02-27 2015-03-21 2015-04-10

и нужно вывести для каждой даты разницу между сегодняшней датой в днях

можно функцию с параметром на баше запихнуть в авк команду?

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

Под рукой есть и более привычные инструменты

perl -e 'use Date::Calc qw(Delta_Days); print Delta_Days(1990, 9, 10, 1990, 10, 8) . "\n"'
28
anonymous
()
Ответ на: комментарий от anonymous

Главный минус - нужно знать перл, да еще и либы работы с датами.

loz ★★★★★
()
Ответ на: комментарий от buddhist

Ну я сейчас в питере тусуюсь с лисперами-эрлангистами. Про ребол вобще недавно узнал, сейчас изучаю активно.

loz ★★★★★
()
Последнее исправление: loz (всего исправлений: 1)
Ответ на: комментарий от lSergey

можно функцию с параметром на баше запихнуть в авк команду?

можно но не нужно. Лови однострок на bash'е

NOW=$(date -d'now' +%s);\
while read DT;\
do \
DT=$(date -d"$DT" +%s); ((DT = NOW-DT)); ((DT /= 3600*24)); echo $DT;\
done< <(echo -e '2015-02-27\n2015-03-21\n2015-04-10')

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

А все равно будет работать, но с while проще, ага.

Lavos ★★★★★
()
Ответ на: комментарий от buddhist

Чет про него не знает никто правда, всмысле вобще, я и то случайно нашел, а не из статьи или срача какого.

loz ★★★★★
()
Ответ на: комментарий от lSergey

для примитивной арифметике баша вполне достаточно. Ножовкой по металлу закручивать винты можно, но не очень удобно.

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