B - 割り切れる日付 / AtCoderRegularContest#002
import java.io.*; import java.util.*; public class Main { public static int Y, M, D; private void Input() { Scanner sc = new Scanner(System.in); String[] str = sc.next().split("/"); Y = Integer.valueOf(str[0]); M = Integer.valueOf(str[1])-1; D = Integer.valueOf(str[2]); } private void Solve() { Calendar cal = Calendar.getInstance(); cal.set(Y,M,D); while (true) { Y = cal.get(Calendar.YEAR); M = cal.get(Calendar.MONTH)+1; D = cal.get(Calendar.DATE); if (Y%(M*D) == 0) break; cal.add(Calendar.DAY_OF_MONTH,1); } } private void Output() { PrintWriter pw = new PrintWriter(System.out); pw.printf ("%04d/%02d/%02d\n", Y, M, D); pw.flush(); } public static void main(String[] args) throws Exception { Main instance = new Main(); instance.Input(); instance.Solve(); instance.Output(); } }
JavaのCalendarを用いて、日付の数値取得や加算などを行い割り切れた場合、その日付を出力。
〜了〜