2010-05-27 5 views
1

Je teste une classe Person qui modélise une personne avec le nom, l'adresse et la date de naissance. Comment définir dob (date de naissance)?
Voici ma classe Person:Affichage de la date de naissance dans Java en utilisant Util Util

import java.util.Date; 
public class Person{ 
    private String name; 
    private String address; 
    private Date dob; 


    public Person(){ 
     name = null; 
     address = null; 
     dob = null; 
    } 

    public Person(String nameValue, String newAddress, Date newDob){ 
     name = nameValue; 
     address = newAddress; 
     dob = newDob; 
    } 


    public String getName(){ 
     return name; 
    } 

    public void setName(String nameValue){ 
     name = nameValue; 
    } 

    public int getAddress(){ 
     return address; 
    } 

    public void setAddress(String newAddress){ 
     address = newAddress; 
    } 

    public int getDateOfBirth(){ 
     return dob; 
    } 

    public void setDateOfBirth(Date newDob){ 
     dob = newDob; 
    } 

    public void print(){ 
     System.out.println("Name: " + name); 
     System.out.println ("Date Of Birth: " + dob); 
     System.out.println ("Address: " + address); 
    } 

} 


PersonTester{  
    Person a = new Person(); 
    a.setName("John Smith"); 
    a.setDateOfBirth (01/08/1985);??? - doesn't work 
+1

Pouvez-vous fournir la classe complète de la personne? Tout dépend de quelles méthodes il a pour fixer la date de naissance ... –

+0

Qu'est-ce que Person? At-il un setDateOfBirthMethod? Vous ne faites que transmettre des chiffres. Le format de l'argument est-il un String, un objet Date, etc? –

Répondre

4

Si vous avez les champs sous forme de nombres, vous pouvez utiliser un objet Calendrier pour créer une date.

import java.util.Calendar; 

// class definition here, etc... 

    Calendar cal = Calendar.getInstance(); 
    cal.set(1985, 1, 8); // Assumes MM/dd/yyyy 
    //cal.set(1985, 8, 1); // Assumes dd/MM/yyyy 
    // cal.getTime() returns a Date object 
    a.setDateOfBirth(cal.getTime()); 

Si elle est sous forme de texte dans le format que vous avez dit plus tôt, vous pouvez le faire à la place:

import java.text.SimpleDateFormat; 

String dateString = "01/08/1985"; 

// class definition here, etc... 

    formatter = new SimpleDateFormat("MM/dd/yyyy"); 
    // formatter = new SimpleDateFormat("dd/MM/yyyy"); 

    a.setDateOfBirth(formatter.parse(dateString)); 
1

Vous devez soit passer un objet date semblable, ou une chaîne qui sera analysée. Il semble que vous passez une expression entière (qui vaut 0).

2

Vérifiez this tutoriel sur la façon d'analyser une chaîne comme une date

Questions connexes