Advertisement
Manavard

Untitled

Jun 3rd, 2019
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.88 KB | None | 0 0
  1. package datetime;
  2.  
  3. import java.time.ZonedDateTime;
  4. import java.time.ZoneId;
  5. import java.time.Instant;
  6. import java.time.format.DateTimeFormatter;
  7. import java.time.temporal.ChronoUnit;
  8. import java.util.Locale;
  9. import java.util.MissingResourceException;
  10. import java.util.InputMismatchException;
  11. import java.util.ResourceBundle;
  12. import java.util.Scanner;
  13. import java.lang.String;
  14.  
  15.  
  16. public class DateTimeProgramm {
  17.  
  18. private static final String RU_LANG = "RU";
  19.  
  20. public static void main(String[] args) {
  21. try {
  22.  
  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. System.out.println(Locale.forLanguageTag(localeStr));
  28. Locale.setDefault(new Locale(localeStr));
  29. ResourceBundle resourceBundle = ResourceBundle.getBundle("messages");
  30.  
  31. System.out.println(resourceBundle.getString("languageSelected"));
  32. System.out.println(resourceBundle.getString("insertTheNumber"));
  33.  
  34. long num = scanner.nextLong();
  35. Instant dateTime = Instant.ofEpochMilli(num);
  36. scanner.close();
  37.  
  38. ZonedDateTime zonedDateTime = dateTime.atZone(ZoneId.of("Asia/Tashkent"));
  39. System.out.println(zonedDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
  40.  
  41. long daysBetween = ChronoUnit.DAYS.between(Instant.ofEpochMilli(0L), dateTime);
  42. long weeksBetween = daysBetween / 7;
  43.  
  44. if (localeStr.equalsIgnoreCase(RU_LANG)) {
  45. printForRuLocale(weeksBetween, daysBetween, resourceBundle);
  46. } else {
  47. printForOtherLocale(weeksBetween, daysBetween, resourceBundle);
  48. }
  49. System.out.println(resourceBundle.getString("bye"));
  50.  
  51. } catch (MissingResourceException | InputMismatchException exc) {
  52. System.out.println("Вы ввели недопустимое значение.");
  53. }
  54. }
  55.  
  56. private static void printForOtherLocale(long weeks, long days, ResourceBundle resourceBundle) {
  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