Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy

Ako vypočítať dátum Rozdiel v Jave

Výpočet rozdiely medzi dvoma dátumami v Jave 6.0 a staršie môže byť zdanlivo ťažké , pretože je potrebné prispôsobiť sa prestupné roky , skok sekundy , letný čas a ďalšie úpravy pravidelne vykonané v kalendári vo väčšine krajín . Tento výukový program poskytuje dve riešenia , jedno , ktoré by nemali byť použitý pre situácie , kedy DST alebo prestupné roky , môže spôsobiť vážne problémy , a sofistikovanejšie možnosti založené na knižnici JSR - 310 . Táto knižnica je naplánovaný byť súčasťou 7.0 rozhrania API v jazyku Java , ak je vydaná na konci roka 2010 . Avšak , to môže byť stiahnutý pre použitie sa . Veci , ktoré budete potrebovať
počítačom
Java
JSR - 310 ( voliteľne )
Zobraziť ďalšie inštrukcie for S Java 6.0 Nástroje
1

Vytvoriť Nová trieda s názvom " DateDifferencer " a názov súboru " DateDifferencer.java . " Dajte mu nasledujúce kostru :

/*** Táto trieda bude poskytovať dve metódy pre zistenie rozdielov medzi dátami * - natívne metódy , ktoré neberie do úvahy prestupné roky a ostatné dáta zvláštnosti * , ale že je kompatibilný s najnovšou verziou Javy , ako zo začiatku roka 2010 * - .. sofistikovanejšie verziu , ktorá používa externé JSR - 310 knižnicu , * ktoré budú zahrnuté v Jave 7 , ktoré má byť prepustený v neskorej 2010 ** @ author Kevin Walker * /public class DateDifferencer bude {

}

Všetko ostatné ísť do tejto triedy kostry .
2

Vypočítajte počet milisekúnd na jeden deň , a uložiť ich do konštanta pre neskoršie použitie . To je nutné, pretože Java 6.0 a staršie verzie pochopiť čas natívne v milisekundách alebo nanosekúnd .

/*** Počet milisekúnd za deň sa rovná 1000 milisekúnd za sekundu * 60 sekúnd za minútu * 60 minút na hod * 24 hodín denne * /

public final static double MILLISECONDS_IN_DAY = 1000 * 60 * 60 * 24 ;
3

Vytvorte metódu " findDifference " . Uistite sa , že Javadoc komentár konštatuje , že nedostatky v metóde pre kohokoľvek iného , kto sa rozhodne ju využiť .

/*** Táto trieda používa jednoduchú metódu pre výpočet rozdielu medzi dvoma dátumami . * Avšak , to nie je bezchybný . Nepresnosti môžu viesť v dôsledku prestupných rokov . ** @ Return počet dní rozdielu medzi dvoma dátumami bez korekcie na prestupné roky a zmeny letného času úspory . * /Public static double findDifference ( Date d1 , d2 Date ) {

double diff = Math.abs ( d2.getTime ( ) - d1.getTime ( ) ) ;

dvojlôžkové dni = diff /MILLISECONDS_IN_DAY ;

návrat dni ;

}

to funguje tak , že zistenia rozdielu medzi dvoma dátumami v milisekundách . To potom rozdelí , že počet milisekúnd v deň , ( ktorý vypočítané v kroku 2 ) .
Pomocou JSR - 310
4

Umiestnite JSR - 310 Time " jar " súbor v rovnakom adresári ako zvyšok programu .
5

Pridajte niekoľko ďalších dovozov do DateDifferencer triedy , takže môžete mať prístup ku knižnici JSR 310.

import javax.time.Duration , import javax.time.period.Period ,
6

Pridať novú metódu do DateDifferencer triede

/*** @ return reťazec . . opisuje rozdiel medzi dvoma dátumami * /public static String findDifferenceWithJSR ( dátum začatia , dátum ukončenia ) { durácia = Duration.durationBetween ( začiatok , koniec ) ; Obdobie diff = Period.nanos ( duration.toNanos ( ) ) ; return new diff.toString ( ) ; }

Tým sa vytvorí " Doba trvania " objekt , ktorý drží rozdiel medzi dvoma dátumami . Dalo by sa tam zastaviť a vrátiť sa príkaz po celú dobu v " toString " . Avšak, toto poskytuje odpoveď , pokiaľ ide o sekundách , ktorá nie je človek - čitateľný . Tak , to potom vytvára " obdobie " objekt a používa jeho " toString " príkaz .

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené