Το κλειδί για την επίλυση του προβλήματος αυτού είναι η κατανόηση πώς ο υπολογιστής κρατά πραγματικά την αίσθηση του χρόνου . Ένας υπολογιστής Unix αποθηκεύει όλες τις φορές τον αριθμό των δευτερολέπτων που έχουν παρέλθει από την Unix Epoch . Το Unix Epoch είναι τα μεσάνυχτα της 1ης Ιανουαρίου 1970.
Εικόνων πάρει τα δευτερόλεπτα Από το Unix Epoch
Η
Μπορείτε να πάρετε τον αριθμό των δευτερολέπτων από την Unix Epoch σε μια δεδομένη ημερομηνία χρησιμοποιώντας ένα συνδυασμό της σημαίας και το " + % s " - εντολή " date" . Πληκτρολογήστε τα ακόλουθα σε ένα κέλυφος για να πάρετε τον αριθμό των δευτερολέπτων από την Unix Epoch στο 11 Μαρτίου 2011 :
ημερομηνία - ημερομηνία 2011-03-11 + % s
Το αποτέλεσμα θα είναι : 1299823200 . Μπορείτε να χρησιμοποιήσετε οποιαδήποτε μορφή ημερομηνίας και ώρας που θα μπορεί να αναλύσει με την " ημερομηνία " εντολή σε αυτό το σενάριο. Μπορείτε να πληκτρολογήσετε " ημερομηνία άνθρωπος " στο καβούκι σας για να διαβάσετε για όλες τις μορφές έγκυρη ημερομηνία .
Η Η Λύση
Η Όπως μπορείτε να πάρετε οποιαδήποτε δεδομένη ημερομηνία ή φορά σε μια συμβατή μορφή Unix και το μετατρέπουν σε δευτερόλεπτα πριν ή μετά την Unix Epoch , μπορείτε να βρείτε τη διαφορά μεταξύ δύο οποιωνδήποτε φορές αφαιρώντας τα αποτελέσματα των δύο αυτών των εντολών .
Πληκτρολογήστε τις ακόλουθες εντολές στη συσκευή σας κέλυφος:
d1 = `date - ημερομηνία 2011-03-11 + % s `
d2 = `date - ημερομηνία 2010-05-12 + % s `
echo " $ ( ( ( d1 - d2 ) ) ) δευτερόλεπτα διαφορά»
στις δύο πρώτες γραμμές , η ` χαρακτήρας δεν είναι ένα σημάδι απόσπασμα . Είναι ένα back- τσιμπούρι. Μπορείτε να εντοπίσετε αυτό το χαρακτήρα στα αριστερά του " 1" σε ένα τυπικό πληκτρολόγιο ΗΠΑ .
Η έξοδος πρέπει να είναι η διαφορά μεταξύ των δύο φορές μέσα σε λίγα δευτερόλεπτα . Αν χρειαστεί , μπορείτε να μετατρέψετε αυτό σε λεπτά , ώρες , ημέρες , και ούτω καθεξής διαιρώντας τον αριθμό των δευτερολέπτων σε ένα λεπτό , λεπτά σε μια ώρα ή ώρες σε μια ημέρα .
Εικόνων A Script
Η
Όπως θα ήταν μια ενόχληση για να πληκτρολογήσετε τα τρία μακρά εντολές κάθε φορά , θα πρέπει να ενσωματώσει σε ένα σενάριο . Ανοίξτε τον αγαπημένο σας επεξεργαστή κειμένου και επικόλληση του παρακάτω : !
# /Usr /bin /env bash
d1 = `date - date $ 1 + % s `
d2 = `date - date $ 2 + % s `
echo " $ ( ( ( d1 - d2 ) ) ) δευτερόλεπτα διαφορά "
Αυτό αλλάζει μερικά πράγματα . Η άνω γραμμή αφήνει το τρέχον κέλυφος ξέρετε ότι γράφετε αυτό το script να χρησιμοποιήσει τη γλώσσα του "πάρτι " κέλυφος . Όπως μπορείτε να αντικαταστήσετε τις ημερομηνίες κατά τις δύο εντολές ημερομηνία με "$ 1" και "$ 2 ", μπορείτε να περάσετε νέες ημερομηνίες για το σενάριο κάθε φορά που τρέχει . Για άλλη μια φορά , στις δύο πρώτες γραμμές , μπορείτε να χρησιμοποιήσετε το πίσω -tick ` , όχι μια μόνο προσφορά .
Αποθηκεύστε το σενάριό σας με το όνομα " timediff.sh " και τρέξτε την εντολή " chmod + x timediff.sh " με το κέλυφος σας για να Unix ξέρετε ότι έχει την άδεια για να τρέξει αυτό ως ένα σενάριο
Αφού το κάνετε αυτό , μπορείτε να βρείτε τη διαφορά μεταξύ δύο οποιωνδήποτε ημερομηνίες και οι ώρες πληκτρολογώντας : .
. /timediff.sh 09/13/2010 14/01/1981
Η
εικόνων
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα