demo
Class Pvm2

java.lang.Object
  extended by demo.Pvm2
All Implemented Interfaces:
java.lang.Comparable<java.lang.Object>
Direct Known Subclasses:
Pvm3

public class Pvm2
extends java.lang.Object
implements java.lang.Comparable<java.lang.Object>

Alustava luokka päivämäärää varten

Version:
1.0, 07.02.2003, 1.1, 14.02.2003, 1.2, 17.02.2003, 1.3, 11.02.2008
Author:
Vesa Lappalainen

Field Summary
protected  int kk
          Kuukauden arvo
protected  int pv
          Päivän arvo
protected  int vv
          Vuoden arvo
 
Constructor Summary
Pvm2()
          Alustetaan kaikki attribuutit oletusarvoon
Pvm2(int pv)
          Alustetaan kuukausi ja vuosi oletusarvoon
Pvm2(int pv, int kk)
          Alustetaan vuosi oletusarvoon
Pvm2(int pv, int kk, int vv)
          Alustetaan vuosi oletusarvoon
Pvm2(java.lang.String s)
          Alustetaan päivämäärä merkkijonosta
 
Method Summary
 void alusta(int pv, int kk, int vv)
          Alustetaan päivämäärä. 0-arvot eivät muuta vastaavaa attribuuttia TODO: oikeellisuustarkitukset
 int compareTo(java.lang.Object obj)
          Verrataan päivämäärää olioon obj.
 int compareTo(Pvm2 pvm2)
          Verrataan miten kaksi päivämäärää suhtautuu toisiinsa.
static int compareTo(Pvm2 pvm1, Pvm2 pvm2)
          Verrataan miten kaksi päivämäärää suhtautuu toisiinsa.
 boolean equals(java.lang.Object obj)
          Vertaa onko päivämäärä sama kuin toinen objekti.
 int getKk()
           
 int getPv()
           
 int getVv()
           
static void main(java.lang.String[] args)
          Testataan päivämäärä-luokkaa
 void paivays()
          Muuttaa päivämäärän nykypäivälle.
 void parse(java.lang.String s)
          Ottaa päivämäärän tiedot merkkijonosta joka on muotoa 17.2.2007 Jos joku osa puuttuu, sille käytetään tämän päivän arvoa oletuksena.
 void parse(java.lang.StringBuffer sb)
          Ottaa päivämäärän tiedot merkkijonosta joka on muotoa 17.2.2007 Jos joku osa puuttuu, sille käytetään tämän päivän arvoa oletuksena.
protected  void pvmParse(java.lang.String s)
          Ottaa päivämäärän tiedot merkkijonosta joka on muotoa 17.2.2007 Jos joku osa puuttuu, sille käytetään tämän päivän arvoa oletuksena.
protected  void pvmParse(java.lang.StringBuffer sb)
          Ottaa päivämäärän tiedot merkkijonosta joka on muotoa 17.2.2007 Jos joku osa puuttuu, sille käytetään tämän päivän arvoa oletuksena.
 java.lang.String toString()
          Päivämäärä merkkijonona
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

pv

protected int pv
Päivän arvo


kk

protected int kk
Kuukauden arvo


vv

protected int vv
Vuoden arvo

Constructor Detail

Pvm2

public Pvm2()
Alustetaan kaikki attribuutit oletusarvoon


Pvm2

public Pvm2(int pv)
Alustetaan kuukausi ja vuosi oletusarvoon

Parameters:
pv - päivän alustusarvo

Pvm2

public Pvm2(int pv,
            int kk)
Alustetaan vuosi oletusarvoon

Parameters:
pv - päivän alustusarvo
kk - kuukauden oletusarvo

Pvm2

public Pvm2(int pv,
            int kk,
            int vv)
Alustetaan vuosi oletusarvoon

Parameters:
pv - päivän alustusarvo
kk - kuukauden oletusarvo
vv - vuoden alustusarvo

Pvm2

public Pvm2(java.lang.String s)
Alustetaan päivämäärä merkkijonosta

Parameters:
s - muotoa 12.3.2008 oleva merkkijono
Method Detail

paivays

public void paivays()
Muuttaa päivämäärän nykypäivälle. Todo: pitää vaihtaa hakemaan päivämäärä oikeasti. Mutta perinnässäkään ei nyt saa käyttää enempää attribuutteja kuin tässä on


alusta

public void alusta(int pv,
                   int kk,
                   int vv)
Alustetaan päivämäärä. 0-arvot eivät muuta vastaavaa attribuuttia TODO: oikeellisuustarkitukset

Parameters:
pv - päivän alustus
kk - kuukauden alustus
vv - vuoden alustus

toString

public java.lang.String toString()
Päivämäärä merkkijonona

Overrides:
toString in class java.lang.Object
Returns:
päivämäärä muodossa 17.2.2007
Example:
   tammi2008.toString() === "1.1.2008"
   helmi2008.toString() === "1.2.2008"
   tanaan.toString()    === "17.2.2008"
   maalis97.toString()  === "1.3.1997"
   p23_2.toString()     === s23_2
 

pvmParse

protected final void pvmParse(java.lang.StringBuffer sb)
Ottaa päivämäärän tiedot merkkijonosta joka on muotoa 17.2.2007 Jos joku osa puuttuu, sille käytetään tämän päivän arvoa oletuksena.

Parameters:
sb - tutkittava merkkijono

pvmParse

protected final void pvmParse(java.lang.String s)
Ottaa päivämäärän tiedot merkkijonosta joka on muotoa 17.2.2007 Jos joku osa puuttuu, sille käytetään tämän päivän arvoa oletuksena.

Parameters:
s - tutkittava merkkijono

parse

public void parse(java.lang.String s)
Ottaa päivämäärän tiedot merkkijonosta joka on muotoa 17.2.2007 Jos joku osa puuttuu, sille käytetään tämän päivän arvoa oletuksena.

Parameters:
s - tutkittava merkkijono
Example:
 Pvm2 pvm = new Pvm2(11,3,2003);
 pvm.parse("12"); pvm.toString() === "12.2.2008";
 pvm.parse("..2001"); pvm.toString() === "17.2.2001";
 pvm.parse("..2009 14:30"); pvm.toString() === "17.2.2009"; 
 

parse

public void parse(java.lang.StringBuffer sb)
Ottaa päivämäärän tiedot merkkijonosta joka on muotoa 17.2.2007 Jos joku osa puuttuu, sille käytetään tämän päivän arvoa oletuksena. Merkkijonosta otetaan pois vain se osa, jota tarvitaan.

Parameters:
sb - tutkittava merkkijono
Example:
 Pvm2 pvm = new Pvm2(11,3,2003);
 StringBuffer jono = new StringBuffer("12");
 pvm.parse(jono); pvm.toString() === "12.2.2008"; jono.toString() === "";
 jono = new StringBuffer("..2001");
 pvm.parse(jono); pvm.toString() === "17.2.2001"; jono.toString() === "";
 jono = new StringBuffer("..2009 14:30");
 pvm.parse(jono); pvm.toString() === "17.2.2009"; jono.toString() === "14:30";
 

getPv

public int getPv()
Returns:
päivän arvo

getKk

public int getKk()
Returns:
kuukauden arvo

getVv

public int getVv()
Returns:
vuoden arvo

compareTo

public int compareTo(java.lang.Object obj)
Verrataan päivämäärää olioon obj. Jos o ei ole päivämäärä tai merkkijono heiteään poikkeus.

Specified by:
compareTo in interface java.lang.Comparable<java.lang.Object>
Parameters:
obj - olio johon verrataan, jonka toivotaan olevan Pv,2 tyyppiä.
Returns:
-1 jos < 0 jos == ja 1 jos > kuin verrattava obj.
Throws:
java.lang.ClassCastException - jos luokka väärää tyyppiä
Example:
   Pvm2 pvm = new Pvm2(12,3,2009);
   pvm.compareTo(new Double(2)) === 0; #THROWS ClassCastException
   pvm.compareTo("12.3.2009") === 0; 
   pvm.compareTo(new StringBuffer("12.3.2009")) === 0;
   pvm.compareTo(tanaan) === 1; 
 

compareTo

public int compareTo(Pvm2 pvm2)
Verrataan miten kaksi päivämäärää suhtautuu toisiinsa.

Parameters:
pvm2 - toinen verrattava
Returns:
-1 jos < pvm2, 0 jos yhtäsuuret ja 1 jos > pvm2
Example:
  maalis97.compareTo(tammi2008) === -1;  // ero vuodessa
  tammi2008.compareTo(maalis97) === 1;
  tammi2008.compareTo(tanaan)   === -1;    // ero kuukaudessa
  tanaan.compareTo(tammi2008)   === 1;
  helmi2008.compareTo(tanaan)   === -1;    // ero päivässä
  tanaan.compareTo(helmi2008)   === 1;
  tanaan.compareTo(tanaan)      === 0;
 

compareTo

public static int compareTo(Pvm2 pvm1,
                            Pvm2 pvm2)
Verrataan miten kaksi päivämäärää suhtautuu toisiinsa.

Parameters:
pvm1 - ensimmäinen verratava
pvm2 - toinen verrattava
Returns:
-1 jos pvm1 < pvm2, 0 jos yhtäsuuret ja 1 jos pvm1 > pvm2
Example:
 #STATICIMPORT
  compareTo(maalis97,tammi2008) === -1;  // ero vuodessa
  compareTo(tammi2008,maalis97) === 1;
  compareTo(tammi2008,tanaan)   === -1;    // ero kuukaudessa
  compareTo(tanaan,tammi2008)   === 1;
  compareTo(helmi2008,tanaan)   === -1;    // ero päivässä
  compareTo(tanaan,helmi2008)   === 1;
  compareTo(tanaan,tanaan)      === 0;
 

equals

public boolean equals(java.lang.Object obj)
Vertaa onko päivämäärä sama kuin toinen objekti. Osaa verrata String ja StringBuffer-luokkiinkin

Overrides:
equals in class java.lang.Object
Parameters:
obj - verrattava objekti
Returns:
true jos sisällöltään samat, muuten false
Example:
 maalis97.equals(tammi2008)          === false;
 tammi2008.equals(maalis97)          === false;
 tanaan.equals(tanaan)               === true;
 p23_2.equals(new Pvm2("23.2.2008")) === true;
 p23_2.equals(p22_2)                 === false;
 p23_2.equals(s23_2)                 === true;
 p23_2.equals(s22_2)                 === false;
 s23_2.equals(p23_2)                 === false; // String ei osaa verrata pvm:ään
 s23_2.equals(p22_2)                 === false; // String ei osaa verrata pvm:ään
 s23_2.equals(p23_2.toString())      === true;  // mutta osaa merkkijonoon
 tanaan.equals(new Double(2))        === false; // pvm ei osaa verrata muihin tyyppeihin
 p23_2.equals(new StringBuffer("23.2.2008")) === true;
 p23_2.equals(new StringBuffer("22.2.2008")) === false;
 

main

public static void main(java.lang.String[] args)
Testataan päivämäärä-luokkaa

Parameters:
args - ei käytössä