Bonsoir,
Je voudrais écrire un programme qui demande à l’ utilisateur de saisir un mois et une année. Puis le programme affiche le nombre de jours de ce mois.
Bonsoir,
Je voudrais écrire un programme qui demande à l’ utilisateur de saisir un mois et une année. Puis le programme affiche le nombre de jours de ce mois.
Bonjour,
La librairie Calendar, est un bon début.
http://docs.oracle.com/javase/7/docs.../Calendar.html
Cordialement
Salut,
Très bien, et, donc, quels problèmes rencontres-tu pour réaliser ce programme ?
Si c'est our la saisie, regarde la classe Scanner. Pour le reste, tout dépend ce que tu peux utiliser ou pas : à la base, il n'y a que des calculs à faire (1 mois sur 2 à 30 jours ou 31 jours, sauf le mois de février qui en a 28, ou 29, les années bissextiles (quelques calculs et tests sur l'année pour le savoir). Si tu peux utiliser des classes toutes faites de Java, les classes Calendar ou LocalDate Month et Year pourront t'aider.
Si tu es en java 8 et que tu t'en fous de ce qui se passait avant 1920 en Russie, java.time a déjà tout ce qu'il faut:
par exemple
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 import java.time.*; int mois = ....; int anneee = ....; Month.of(mois).getLength(Year.isLeap(annee));
salut,
n´est pas plutot :Month.of(mois).getLength(Year.isLeap(annee));
EricMonth.of(mois).length(Year.isLeap(annee))
Bonjour,
moi j'ai ca en 1.7 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 int annee = ...; int mois = ... ; Calendar cal = Calendar.getInstance() ; cal.set(annee, mois-1 /* -1 car mois vont de 0 à 11 */ , 1) ; cal.getActualMaximum(Calendar.DAY_OF_MONTH);
Voici mon programme java. Corrigez-moi.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 package com.iam.EXO15; import java.time.*; import java.util.Scanner; public class Nbre_d_jr_du_mw { /** * @param args * @param Year */ public static void main(String[] args) { // TODO Auto-generated method stub Scanner ok = new Scanner(System.in); System.out.println("veiller saisir le mois"); String mois = ok.nextLine(); int i = Integer.parseInt(mois); System.out.println("veiller saisir l'annee"); String annee = ok.nextLine(); int j = Integer.parseInt(annee); System.out.println(Month.of(i).getLength(Year.isLeap(j))); } }
salut,
une petite modification:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 public class Nbre_d_jr_du_mw { /** * @param args * @param Year */ public static void main(String[] args) { // TODO Auto-generated method stub Scanner ok = new Scanner(System.in); System.out.println("veiller saisir le mois"); String mois = ok.nextLine(); int i = Integer.parseInt(mois); System.out.println("veiller saisir l'annee"); String annee = ok.nextLine(); int j = Integer.parseInt(annee); System.out.println(Month.of(i).length(Year.isLeap(j))); } }
Moi j'aurais fait
Mais c'est juste parce que je trouve ça un peu plus direct.
Code : Sélectionner tout - Visualiser dans une fenêtre à part YearMonth.of(year, month).lengthOfMonth()
Et pour info, il est possible d'appeler directement nextInt() sur un Scanner, au lieu de nextLine() suivi de Integer.parseInt().
(Du coup year, month et scanner seraient des noms de variables plus appropriés que j, i et ok.)
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
Year cannot be resolved
at com.iam.EXO15.Nbre_d_jr_du_mw.main(Nbre_d_jr_du_mw.java:21)
Salut,
As-tu importé la classe java.time.Year (ou le package java.time.*) ?
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager