Je vais définir une variable de date (dire '08 -Jun-2011 ') et je veux faire des calculs basés sur cette date, nommément
1. Doit avoir le premier jour du mois de la journée.
2. Date précédente de la date de la date donnée.
3. Dernier jour de la date de la date donnée. P>
Tout ce que je sais, c'est manipuler à l'aide de la date et de l'heure du système actuel, mais je ne sais pas comment mettre en œuvre avec la date définie par l'utilisateur. J'ai besoin que cela soit atteint à l'aide du script de shell Linux. P>
Toute aide sera appréciée. P>
merci,
Karthik P>
5 Réponses :
Ceci va être compliqué dans un script shell. Vous ferez mieux d'utiliser la date :: manip à Perl ou quelque chose de similaire dans une autre langue complète. Cependant, je peux penser à certains moyens de le faire avec la commande de date. Tout d'abord, vous pouvez utiliser un paramètre A --Date pour définir un point de départ pour la date, comme: Vous pouvez obtenir la date précédente comme ceci: P>
$ date --date='31-JUN-2011';echo $?
date: invalid date `31-JUN-2011'
1
$ date --date='30-JUN-2011';echo $?
Thu Jun 30 00:00:00 EDT 2011
0
Comme vous utilisez Linux, vous disposez de l'utilitaire de date GNU disponible. Il peut gérer presque toutes les descriptions d'une date relative que vous pensez.
Voici quelques exemples p> pour en savoir plus à ce sujet voir GNU Date Exemples P> Une fois que vous l'utilisez, Vous pouvez raccourcir votre collecte d'informations avec J'espère que cela aide. P > p> date --Help code>, qui affiche toutes les options de base (mais est parfois difficile à interpréter.) p>
Merci pour le lien de référence et le support!
Voici comment exécuter les manipulations à l'aide de la date de GNU: La sortie est la suivante: p>
Oh merci beaucoup cela a vraiment travaillé. La réponse de chacun est bonne et la réponse de Gregg s'adapte vraiment mieux pour moi. Merci!
$ date +%m/01/%Y I came here looking for a way to get the first day of the current month.
Utilisation de DateUtils ' Terron Outil:
mois en cours: P> xxx pré>
mois précédent p> dernier jour du mois en cours: p> bien sûr Vous pouvez utiliser une date personnalisée au lieu de aujourd'hui code>, l'idée est de se rendre au jour ou à la journée souhaitée du mois, par exemple Le prochain premier de l'année 2010-10-04: P>
$ dround 2010-10-04 +1d
2010-11-01
Pour # 1, tu veux dire jour-de-semaine (c'est-à-dire mon-vendredi?), Il sera toujours "01" pour la fête de la journée, non? ;-) Bonne chance.