POJ-3751 de conversión de formato de fecha y hora (versión Java)

tema Enlace

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

pensamiento

Usando la división Suma
considerar el tiempo de conversión, horas 24 si el sistema 12 es para ser convertido en 0, si la hora> 12, 12 que se restará, a fin de descartar 12 hecha del tiempo correspondiente
considerar cuando un número inferior a 10 con la parte delantera 0

código

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());
	}

}

Publicado 60 artículos originales · ganado elogios 4 · Vistas 1258

Supongo que te gusta

Origin blog.csdn.net/qq_43966129/article/details/105348706
Recomendado
Clasificación