Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package datetime;
- import java.time.LocalDateTime;
- import java.time.ZonedDateTime;
- import java.time.ZoneId;
- import java.time.Instant;
- import java.time.format.DateTimeFormatter;
- import java.time.temporal.ChronoUnit;
- import java.util.Locale;
- import java.util.MissingResourceException;
- import java.util.InputMismatchException;
- import java.util.ResourceBundle;
- import java.util.Scanner;
- import java.lang.String;
- public class DateTimeProgramm {
- private static final String RU_LANG = "RU";
- public static void main(String[] args) {
- try {
- System.out.println("Выберете язык: \n en - EN\n ru - RU \n uz - UZ\n");
- Scanner scanner = new Scanner(System.in);
- String localeStr = scanner.next();
- //Locale.setDefault(new Locale(localeStr, localeStr));
- ResourceBundle resourceBundle = ResourceBundle.getBundle(("messages"), new Locale(localeStr));
- System.out.println(resourceBundle.getString("languageSelected"));
- System.out.println(resourceBundle.getString("insertTheNumber"));
- long num = scanner.nextLong();
- Instant dateTime = Instant.ofEpochMilli(num);
- scanner.close();
- ZonedDateTime zonedDateTime = dateTime.atZone(ZoneId.of("Asia/Tashkent"));
- System.out.println(zonedDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
- long daysBetween = ChronoUnit.DAYS.between(Instant.ofEpochMilli(0L), dateTime);
- long weeksBetween = daysBetween / 7;
- if (localeStr.equalsIgnoreCase(RU_LANG)) {
- printForRuLocale(weeksBetween, daysBetween, resourceBundle);
- } else {
- printForOtherLocale(weeksBetween, daysBetween, resourceBundle);
- }
- System.out.println(resourceBundle.getString("bye"));
- } catch (MissingResourceException | InputMismatchException exc) {
- System.out.println("Вы ввели недопустимое значение.");
- }
- }
- private static void printForOtherLocale(long weeks, long days, ResourceBundle resourceBundle) {
- System.out.print(weeks + " ");
- if (weeks == 1) {
- System.out.print(resourceBundle.getString("weeks") + " ");
- } else {
- System.out.print(resourceBundle.getString("weeks1") + " ");
- }
- System.out.print(days + " ");
- if (days == 1) {
- System.out.print(resourceBundle.getString("day1") + " ");
- } else {
- System.out.print(resourceBundle.getString("day2") + " ");
- }
- }
- private static void printForRuLocale(long weeks, long days, ResourceBundle resourceBundle) {
- long lastDigitDay = days % 10;
- long lastDigitWeek = weeks % 10;
- long penultimateNumberDay = days / 10 % 10;
- long penultimateNumberWeek = weeks / 10 % 10;
- System.out.print(weeks + " ");
- if (penultimateNumberWeek == 1) {
- System.out.print(resourceBundle.getString("weeks2") + " ");
- } else if (lastDigitWeek == 1) {
- System.out.print(resourceBundle.getString("weeks") + " ");
- } else if (lastDigitWeek >= 2 & lastDigitWeek <= 4) {
- System.out.print(resourceBundle.getString("weeks1") + " ");
- } else
- System.out.print(resourceBundle.getString("weeks2") + " ");
- System.out.print(days + " ");
- if (penultimateNumberDay == 1) {
- System.out.println(resourceBundle.getString("day3") + " ");
- } else if (lastDigitDay == 1) {
- System.out.println(resourceBundle.getString("day1") + " ");
- } else if (lastDigitDay >= 2 & lastDigitDay <= 4) {
- System.out.println(resourceBundle.getString("day2") + " ");
- } else
- System.out.println(resourceBundle.getString("day3") + " ");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement