Προς το περιεχόμενο

Διαφορά ημερομηνιών στη vb 2005


lefi

Προτεινόμενες αναρτήσεις

Προσπαθώ να το βρω και έχω κολλήσει, πως μπορώ να βρώ την διαφορά μεταξύ 2 ημερομηνιών (στην vb 2005) η έστω νε μετατρέψω την ημερομηνία σε αριθμό για να αφαιρέσω μετά τους αριθμούς. Σημειώνω ότι αναφέρομαι σε πλήρη ημερομηνία π.χ. #9/4/2011 12:57:52 PM#

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Κάτι τέτοιο:

 

>
 Dim d1 As New Date(2010, 3, 10)
 Dim d2 As New Date(1988, 3, 26)

 Dim etos As Integer
 Dim minas As Integer
 Dim mera As Integer
 Dim wra As Integer
 Dim lepta As Integer
 Dim defterolepta As Integer

 etos = d1.Year - d2.Year
 minas = d1.Month - d2.Month
 mera = d1.Day - d2.Day
 wra = d1.Hour - d2.Hour
 lepta = d1.Minute - d2.Minute
 defterolepta = d1.Second - d2.Second

 

 

ή απλά

 

>
 d1.Ticks - d2.Ticks

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Προσπαθώ να το βρω και έχω κολλήσει, πως μπορώ να βρώ την διαφορά μεταξύ 2 ημερομηνιών (στην vb 2005) η έστω νε μετατρέψω την ημερομηνία σε αριθμό για να αφαιρέσω μετά τους αριθμούς. Σημειώνω ότι αναφέρομαι σε πλήρη ημερομηνία π.χ. #9/4/2011 12:57:52 PM#

Ο κλασικός τρόπος είναι να μετατρέψεις τις ημερομηνίες σε Julian Day Numbers και μετά να τις αφαιρέσεις.

 

Για την πλήρη θεωρία πίσω από τους τύπους διάβασε το λινκ παραπάνω. Αν μπορείς να διαβάσεις κώδικα σε C εδώ είναι ο κώδικας ενός προγράμματος που είχα κάνει παλιότερα με πράξεις μεταξύ ημερομηνιών ( δες τις συναρτήσεις: long date_2jdn( Date date ) και Date *jdn_2date( Date *date, long jd ) ... τα ορίσματα δεν χρειάζεται να είναι long, εγώ έχω άλλο λόγο που τα έχω έτσι, δες επίσης την: date_diff( Date *datediff, Date date1, Date date2, int mdays[] ) που μεταξύ άλλων κάνει κι αυτό που θες χωρίς χρήση των JDN).

 

Eδώ το εκτελέσιμό μιας λίγο πιο παλιάς έκδοσής του παραπάνω προγράμματος.

 

ΥΓ. Εγώ δεν είχα ασχοληθεί με ώρες, μόνο με ημερομηνίες. Νομίζω κάτι υπάρχει στους τύπους μετατροπής σε JDN, αλλά και να μην υπάρχει, η ώρα είναι εύκολη να την υπολογίσεις, μετατρέποντάς την σε δευτερόλεπτα, να τα αφαιρέσεις και το αποτέλεσμα να το μετατρέψεις μετά σε ώρες:λεπτά,δευτερόλεπτα.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δες και την εντολή DateSerial(year, month, day) για τον υπολογισμό της διαφοράς των ημερών μεταξύ δύο ημερομηνιών.

Η παράσταση:

 

DD = DateSerial(1992, 10, 23) - DateSerial(1991, 10, 23)

 

επιστρέφει τον αριθμό 366.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...