POJ-3751 date and time format conversion (java version)

Topic Link

https://vjudge.net/problem/POJ-3751

Thinking

Using split divided
consider conversion time, hour 24 if system 12 is to be converted into 0, if the hour> 12, 12 to be subtracted, in order to rule 12 made of the corresponding time
consider when a number less than 10 with the front 0

Code

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {

	/**
	 * @param args
	 * @throws Exception
	 */
	public static void main(String[] args) throws Exception {
		final int T = _02Reader.nextInt();
		for (int i = 0; i < T; i++) {
			String str = _02Reader.nextLine();
			//以1970/01/01-00:01:01为例,进行分割
			//先以-为基准,返回1970/01/01 00:01:01
			String[] split = str.split("-");
			//返回1970 01 01
			String[] date = split[0].split("/");
			//返回00 01 01
			String[] time = split[1].split(":");
			
			int dateYear = Integer.parseInt(date[0]);
			int dateMonth = Integer.parseInt(date[1]);
			int dateDay = Integer.parseInt(date[2]);
			
			int timeHour = Integer.parseInt(time[0]);
			int timeMinute = Integer.parseInt(time[1]);
			int timeSecond = Integer.parseInt(time[2]);
			
			String resultDate= datePrint(dateYear, dateMonth, dateDay);
			String resultTime= timePrint(timeHour, timeMinute, timeSecond);
			 
			if (timeHour < 12) {
				System.out.println(resultDate + "-" + resultTime + "am");
			} else {
				System.out.println(resultDate + "-" + resultTime + "pm");
			}
		}

	}

	private static String timePrint(int timeHour, int timeMinute, int timeSecond) {
		
		return hChange(timeHour)+":"+numChange(timeMinute)+":"+numChange(timeSecond);
	}

	private static String hChange(int hour) {
		
		if (hour == 0) {
			hour = 12;
		} else if (hour > 12) {
			hour = hour - 12;
		}
		return numChange(hour);
	}

	private static String datePrint(int dateYear, int dateMonth, int dateDay) {
		
		return numChange(dateMonth) + "/" + numChange(dateDay) + "/" + numChange(dateYear);
	}

	private static String numChange(int num) {
		
		if (num < 10) {
			return "0" + num;
		} else {
			return "" + num;
		}
	}

}

class _02Reader {
	static BufferedReader br = new BufferedReader(new InputStreamReader(
			System.in));
	static StringTokenizer tokenizer = new StringTokenizer("");

	static String next() throws Exception {
		while (!tokenizer.hasMoreTokens()) {
			tokenizer = new StringTokenizer(br.readLine());
		}
		return tokenizer.nextToken();
	}

	static String nextLine() throws Exception {
		return br.readLine();
	}

	static int nextInt() throws Exception {
		return Integer.parseInt(next());
	}

}

Published 60 original articles · won praise 4 · Views 1258

Guess you like

Origin blog.csdn.net/qq_43966129/article/details/105348706