Exactamente como suena la pregunta. Quiero restar decir 20120115 de 20120203 y obtener 19 como respuesta. ¿Cuál es la mejor manera de implementar esto en un script de shell?¿Cómo puedo obtener la diferencia entre dos fechas bajo bash
Respuesta
let DIFF=(`date +%s -d 20120203`-`date +%s -d 20120115`)/86400
echo $DIFF
¿Cómo es que date date reconoció que la cadena está en el formato AAAAMMDD? Por favor dirígeme a la documentación. –
man 1 fecha dice "The --date = STRING es una cadena de fecha legible por humanos en formato libre" –
¿Qué pasa si la cadena es 03022012? Tenga en cuenta que he cambiado el formato a DDMMYYYY. –
Una solución rápida y completamente sucia que se puede utilizar en scripts (rápidos y rápidos):
function getdate { for dd in $(seq -w $1 $2) ; do date -d $dd +%Y%m%d 2>/dev/null ; done ; }
que utilice esta función para otros fines relacionados con los archivos de registro. Y para contar los días:
echo "$(getdate YYYYmmdd YYYYmmdd)" | wc -l
YYYYmmdd tienen que ser fechas, por supuesto. Solo funciona si $ 1 es una fecha anterior a $ 2 y es lenta para grandes diferencias de fecha, pero durante un período de algunos años y para ser utilizado en scripts ad-hoc, es bastante útil.
Y si le sucede que tiene MySQL o similar instalado no es una opción muy rápida:
mysql -BNe "SELECT DATEDIFF($1,$2) AS DiffDate ;" | tr -d -
La última tr
le permite introducir la fecha en cualquier orden (MySQL sería otra cosa hacer un '-'if la primera fecha es anterior a la segunda)
- 1. ¿Cómo obtener la diferencia entre dos fechas redondeadas a horas
- 2. ¿Cómo puedo encontrar la diferencia entre dos fechas usando Javascript
- 3. ¿Cómo puedo obtener la diferencia entre todas las confirmaciones que ocurrieron entre dos fechas con Git?
- 4. calcular la diferencia entre dos fechas
- 5. C# - ¿Diferencia entre dos fechas?
- 6. bash loop entre dos fechas dadas
- 7. Bash - Diferencia entre dos listas
- 8. Diferencia entre dos fechas en MySQL
- 9. ¿Cómo obtengo la diferencia entre dos fechas en JavaScript?
- 10. Diferencia, en minutos, entre dos fechas
- 11. Diferencia entre fechas en dos filas consecutivas
- 12. Diferencia entre dos fechas en Python
- 13. Calcular la diferencia entre dos fechas en MySQL
- 14. ¿Cómo verifico la diferencia, en segundos, entre dos fechas?
- 15. ¿Cómo encuentro la diferencia horaria entre dos fechas en PHP?
- 16. Android diferencia entre dos fechas en segundos
- 17. Shell script para obtener la diferencia en dos fechas
- 18. Diferencia de días entre dos fechas
- 19. cómo restar dos fechas y horas para obtener la diferencia
- 20. encuentra la diferencia entre dos fechas en segundos
- 21. Cómo obtener la diferencia horaria (en horas) entre 2 fechas
- 22. ¿Cómo puedo calcular el número de años entre dos fechas?
- 23. Calcula la diferencia entre dos fechas en PHP
- 24. Ruby, Rails y la diferencia entre dos fechas
- 25. Días, horas, minutos, segundos entre dos fechas
- 26. Diferencia entre fechas en JavaScript
- 27. bash, Linux: establecer la diferencia entre dos archivos de texto
- 28. cómo obtener todos los productos entre dos fechas?
- 29. Cómo obtener la diferencia horaria entre dos valores
- 30. ¿Cómo obtener el número de días de diferencia entre dos fechas en mysql?
Posible comprobación de duplicados a esta pregunta: http://stackoverflow.com/questions/4946785/how-to-find-difference-days-between-to-dates –
¿Has considerado otro lenguaje de scripting que admite fechas inherentemente? (python, ruby, perl, ... sin ningún orden en particular), también podría usar un script onliner en su fuente bash. – schoetbi
@schoetbi Pensé en eso pero no estaba muy seguro de esa disponibilidad en todas partes. Sé que bash y date básicos están disponibles en todos los puntos de interés, pero no en el resto. – owagh