La comparaison de la saisie de l'utilisateur date avec la date actuelle
Salut je suis en train de comparer un utilisateur saisi date (comme une chaîne de caractères) avec la date actuelle pour savoir si la date est antérieure ou plus.
Mon code actuel est
String date;
Date newDate;
Date todayDate, myDate;
SimpleDateFormat dateFormatter = new SimpleDateFormat("dd-MM-yyyy");
while(true)
{
Scanner s = new Scanner (System.in);
date = s.nextLine();
Calendar cal = Calendar.getInstance();
try {
//trying to parse current date here
//newDate = dateFormatter.parse(cal.getTime().toString()); //throws exception
//trying to parse inputted date here
myDate = dateFormatter.parse(date); //no exception
} catch (ParseException e) {
e.printStackTrace(System.out);
}
}
Im essayant d'obtenir à la fois de l'utilisateur date d'entrée et date courante en deux Date d'objets, de sorte que je peux utiliser de la Date.compareTo() afin de simplifier la comparaison des dates.
J'ai été en mesure d'analyser l'utilisateur de la chaîne d'entrée dans l'objet Date. Néanmoins, la date cal.getTime().toString() ne pas analyser dans l'objet Date en raison d'être une chaîne non valide.
Comment faire? Merci d'avance
Juste pour clarifier - vous voulez quelque chose qui sera de retour
Oui c'est ce que im essayant de faire. En supposant que im exécutant le programme d'aujourd'hui, newDate = new Date(); me donne (1 Nov 2013 8pm) et si l'entrée de l'utilisateur 1 Nov 2013, il doit retourner false comme la date écrite est aujourd'hui (quelle que soit l'heure).
true
si la date donnée est d'hier, mais false
si la date donnée est aujourd'hui. Est ce que le droit?Oui c'est ce que im essayant de faire. En supposant que im exécutant le programme d'aujourd'hui, newDate = new Date(); me donne (1 Nov 2013 8pm) et si l'entrée de l'utilisateur 1 Nov 2013, il doit retourner false comme la date écrite est aujourd'hui (quelle que soit l'heure).
OriginalL'auteur kype | 2013-11-01
Vous devez vous connecter pour publier un commentaire.
Vous pouvez obtenir le courant
Date
avec:EDIT: Puisque vous suffit de comparer les dates sans prendre en compte le temps composant, je vous recommande de voir ce: Comment comparer deux Dates, sans la partie heure?
En dépit de la "mauvaise forme" de la réponse, j'ai effectivement tout à fait comme elle:
Dans votre cas, vous avez déjà:
donc je ne considère pas (pour des raisons de simplicité plutôt que sur la performance):
Oui, vous pouvez le supprimer si vous en avez besoin.
Je dois le mettre dans le calendrier afin de modifier la durée du droit? Depuis la Date.setHour a été amortis
Pourquoi voulez-vous modifier le temps?
Parce que je veux juste comparer la saisie de l'utilisateur date à date actuelle basée sur la date uniquement (pas de temps). compareTo() compare le temps aussi, donc je veux régler l'heure à 00:00:00 pour supprimer la comparaison du temps d'émission
OriginalL'auteur rolfl
Voici le code pour vérifier si la date donnée-temps est plus grande que l'Actuelle Date-heure.Ci-dessous la méthode prend perticular date-time de la chaîne comme argument et retourne true si date-heure est plus grande que l'actuelle date-heure. #thmharsh
OriginalL'auteur ThmHarsh
Vous pouvez le faire.
Il n'a pas d'importance qui
cal
a une composante temporelle, parce quemyDate
ne l'est pas. Donc, lorsqu'on les compare, sical
etmyDate
sont à la même date, le temps de composante à fairecal
plus tardmyDate
, indépendamment de ce que le composant est.Désolé. Fixe maintenant.
OriginalL'auteur Dawood ibn Kareem
Création d'une nouvelle Date() vous donnera un objet Date avec la date actuelle.
donc:
va faire le travail
OriginalL'auteur Gigalala
OriginalL'auteur Prince_Prajwal
Fomat ne se conforme pas comme vous l'attendez.
de sortie : Ven Nov 01 13:46:52 EET 2013
OriginalL'auteur Ahmet Karakaya