Advertisement
Guest User

Untitled

a guest
Dec 13th, 2017
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.14 KB | None | 0 0
  1. /* 1. Ecrivez un programme permettant de
  2.  
  3. a)lire le montant d'un achat à crédit(ne pas vérifier qu'il est bien strictement positif)
  4.  
  5. b)lire la date (jour mois année) de la première mensualité (vérifier que cette date est bien postérieure à la date actuelle, sinon afficher msg d'erreur et la redemander)
  6.  
  7. c)lire le mois et l'année de la dernière mensualité (toutes les mensualités se payent le même jour du mois) (vérifier que cette date est bien postérieure à la date de la première mensulalité, sinon afficher msg d'erreur et la redemander)
  8.  
  9. d)calculer et afficher le nombre de mensualités et le montant de celles-ci avec deux décimales.
  10.  
  11. Exemple :
  12.  
  13. montant total :1000,50
  14. jour du premier payement(j m a) :1 1 2016
  15. date impossible
  16. jour du premier payement(j m a) :3 2 2018
  17. mois et année du dernier payement( m a) :1 2018
  18. date impossible
  19. mois et année du dernier payement( m a) :1 2019
  20. 12 mensualités de 83,38 euros */
  21. package interro01;
  22.  
  23. import java.time.LocalDate;
  24. import java.time.Period;
  25. import java.util.Scanner;
  26.  
  27. public class AchatCredit {
  28.  
  29. private float credit;
  30. private LocalDate firstMensu, lastMensu;
  31. private LocalDate date2;
  32.  
  33. public AchatCredit() {
  34. credit = 0;
  35. firstMensu = null;
  36. lastMensu = null;
  37. date2 = null;
  38. }
  39.  
  40. public void gestion() {
  41.  
  42. boolean invalid = true;
  43. int j, m, a, month = 0;
  44.  
  45. Scanner sc = new Scanner(System.in);
  46. System.out.println("Entrez le montant: ");
  47. credit = sc.nextFloat();
  48.  
  49. do {
  50. System.out.println("Jour du premier payement (j m a): ");
  51. j = sc.nextInt();
  52. m = sc.nextInt();
  53. a = sc.nextInt();
  54.  
  55. firstMensu = LocalDate.of(a, m, j);
  56. date2 = LocalDate.now();
  57.  
  58. if (date2.isAfter(firstMensu)) {
  59. System.out.println("Entrez une date valide");
  60. } else {
  61. invalid = false;
  62. }
  63. } while (invalid);
  64.  
  65. do {
  66. invalid = true;
  67. System.out.println("Dernière mensualité ( m a): ");
  68. m = sc.nextInt();
  69. a = sc.nextInt();
  70.  
  71. lastMensu = LocalDate.of(a, m, j);
  72.  
  73. if (firstMensu.compareTo(lastMensu) >= 0) {
  74. System.out.println("Entrez une date valide");
  75. } else {
  76. invalid = false;
  77. }
  78. } while (invalid);
  79.  
  80. Period p = firstMensu.until(lastMensu);
  81.  
  82. System.out.println("Mois" + p.getMonths() + "jour" + p.getDays() + "année" + p.getYears());
  83.  
  84. if (p.getYears() > 0) {
  85. for (int i = p.getYears(); i > 0; i--) {
  86. month += 12;
  87. }
  88. }
  89. if (p.getYears() > 0) {
  90. month += p.getMonths();
  91. } else {
  92. month += p.getMonths() + 1;
  93.  
  94. }
  95.  
  96. credit /= month;
  97.  
  98. System.out.printf("Mensualité de: %.2f", credit);
  99. System.out.println(" en " + month + " mois");
  100.  
  101. }
  102.  
  103. public static void main(String[] args) {
  104. AchatCredit a1 = new AchatCredit();
  105. a1.gestion();
  106. }
  107. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement