Advertisement
Manavard

Untitled

Jun 3rd, 2019
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.89 KB | None | 0 0
  1. package datetime;
  2.  
  3. import java.time.LocalDateTime;
  4. import java.time.ZonedDateTime;
  5. import java.time.ZoneId;
  6. import java.time.Instant;
  7. import java.time.format.DateTimeFormatter;
  8. import java.time.temporal.ChronoUnit;
  9. import java.util.Locale;
  10. import java.util.MissingResourceException;
  11. import java.util.InputMismatchException;
  12. import java.util.ResourceBundle;
  13. import java.util.Scanner;
  14. import java.lang.String;
  15.  
  16.  
  17. public class DateTimeProgramm {
  18.  
  19. private static final String RU_LANG = "RU";
  20.  
  21. public static void main(String[] args) {
  22. try {
  23. System.out.println("Выберете язык: \n en - EN\n ru - RU \n uz - UZ\n");
  24.  
  25. Scanner scanner = new Scanner(System.in);
  26. String localeStr = scanner.next();
  27. //Locale.setDefault(new Locale(localeStr, localeStr));
  28. ResourceBundle resourceBundle = ResourceBundle.getBundle(("messages"), new Locale(localeStr));
  29.  
  30. System.out.println(resourceBundle.getString("languageSelected"));
  31. System.out.println(resourceBundle.getString("insertTheNumber"));
  32.  
  33. long num = scanner.nextLong();
  34. Instant dateTime = Instant.ofEpochMilli(num);
  35. scanner.close();
  36.  
  37. ZonedDateTime zonedDateTime = dateTime.atZone(ZoneId.of("Asia/Tashkent"));
  38. System.out.println(zonedDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
  39.  
  40. long daysBetween = ChronoUnit.DAYS.between(Instant.ofEpochMilli(0L), dateTime);
  41. long weeksBetween = daysBetween / 7;
  42.  
  43. if (localeStr.equalsIgnoreCase(RU_LANG)) {
  44. printForRuLocale(weeksBetween, daysBetween, resourceBundle);
  45. } else {
  46. printForOtherLocale(weeksBetween, daysBetween, resourceBundle);
  47. }
  48. System.out.println(resourceBundle.getString("bye"));
  49.  
  50. } catch (MissingResourceException | InputMismatchException exc) {
  51. System.out.println("Вы ввели недопустимое значение.");
  52. }
  53. }
  54.  
  55. private static void printForOtherLocale(long weeks, long days, ResourceBundle resourceBundle) {
  56.  
  57. System.out.print(weeks + " ");
  58. if (weeks == 1) {
  59. System.out.print(resourceBundle.getString("weeks") + " ");
  60. } else {
  61. System.out.print(resourceBundle.getString("weeks1") + " ");
  62. }
  63.  
  64. System.out.print(days + " ");
  65.  
  66. if (days == 1) {
  67. System.out.print(resourceBundle.getString("day1") + " ");
  68. } else {
  69. System.out.print(resourceBundle.getString("day2") + " ");
  70. }
  71. }
  72.  
  73. private static void printForRuLocale(long weeks, long days, ResourceBundle resourceBundle) {
  74. long lastDigitDay = days % 10;
  75. long lastDigitWeek = weeks % 10;
  76. long penultimateNumberDay = days / 10 % 10;
  77. long penultimateNumberWeek = weeks / 10 % 10;
  78.  
  79. System.out.print(weeks + " ");
  80. if (penultimateNumberWeek == 1) {
  81. System.out.print(resourceBundle.getString("weeks2") + " ");
  82. } else if (lastDigitWeek == 1) {
  83. System.out.print(resourceBundle.getString("weeks") + " ");
  84. } else if (lastDigitWeek >= 2 & lastDigitWeek <= 4) {
  85. System.out.print(resourceBundle.getString("weeks1") + " ");
  86. } else
  87. System.out.print(resourceBundle.getString("weeks2") + " ");
  88.  
  89. System.out.print(days + " ");
  90.  
  91. if (penultimateNumberDay == 1) {
  92. System.out.println(resourceBundle.getString("day3") + " ");
  93. } else if (lastDigitDay == 1) {
  94. System.out.println(resourceBundle.getString("day1") + " ");
  95. } else if (lastDigitDay >= 2 & lastDigitDay <= 4) {
  96. System.out.println(resourceBundle.getString("day2") + " ");
  97. } else
  98. System.out.println(resourceBundle.getString("day3") + " ");
  99. }
  100. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement