문자열에서 의미있는 날짜와 시간을 구문 분석하는 프로그램을 만들려고합니다. 나는 날짜/시간 객체를 입력 다음과 같은 종류의 정보를 제공하고, 만들 수 있도록하려면 :문자열에서 날짜/시간을 파싱 하시겠습니까?
5 o'clock
5 p.m.
5 a.m.
5
530
530 a.m.
530 p.m.
Tuesday at [insert any above string here]
the 30th at [same as above]
May 12th at [same as above]
today at [same as above]
tomorrow at [same as above]
오늘날 것으로 가정 할 수있는 일/날짜를 포함하지 않는 모든 문자열, 언제든지 그 오후 9 시부 터 오후 8시 59 분 사이에 AM/PM 지정이없는 것으로 가정 할 수 있습니다.
private void createEvent(String phrase) {
int hour;
int day = 0;
String dayOfWeek = "";
if (phrase.contains("o'clock")) {
hour = Integer.parseInt(phrase.substring(phrase.indexOf("o'clock")-3, phrase.indexOf("o'clock")-1).trim());
out.write(""+hour);
}
if (phrase.contains("tomorrow"))
day = (Calendar.DAY_OF_WEEK % 7)+1;
if (phrase.contains("sunday") || day == 1) {
dayOfWeek = "Sunday"; day = 1; }
else if (phrase.contains("monday") || day == 2) {
dayOfWeek = "Monday"; day = 2; }
else if (phrase.contains("tuesday") || day == 3) {
dayOfWeek = "Tuesday"; day = 3; }
else if (phrase.contains("wednesday") || day == 4) {
dayOfWeek = "Wednesday"; day = 4; }
else if (phrase.contains("thursday") || day == 5) {
dayOfWeek = "Thursday"; day = 5; }
else if (phrase.contains("friday") || day == 6) {
dayOfWeek = "Friday"; day = 6; }
else if (phrase.contains("saturday") || day == 7) {
dayOfWeek = "Saturday"; day = 7; }
else {
dayOfWeek = "Today"; day = 0; }
}
사람이 어떤 방향을 제공 할 수 있습니다 : 나는 빨리이 코드의이 부분을 작성 후지고 있었는지 엉망 실현?
나는 각 경우에 seperatly에 집중할 것이고, 아마도 기본 목적을 위해 간단한 'Formatter'를 만들 것이다. 그것들을 모두 중앙의'FormatFactory'에 추가하십시오. 이렇게하면 필요할 때 포매터를 늘릴 수 있습니다 (또는 필요한 경우 일부 제외). – MadProgrammer
문자열에있을 가능성이있는 것은 무엇입니까? 전체 문자열은 시간과 관련이 있거나 일부 정보에 다른 정보가 포함될 수 있습니까? 예 : "5시에 역에서 만나자" – GHC