输入一个日期,输出标准化的日期。
输入日期可能是下列两种格式之一:
月/日/年 其中月、日、年均由数字表示。
月 日, 年 其中日、年为数字,月为单词。月和日之间,逗号和年之间恰有一个空格。
标准日期格式如下:
月 日, 年, 星期
其中日、年为数字,月、星期为单词。月和日之间,两个逗号后面恰各有一个空格。
年号为4位,在1800和2100之间(含)。
月份单词:
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
星期单词:
Sunday Monday Tuesday Wednesday Thursday Friday Saturday
输入格式:
一行,包含一个日期。前后没有空格。
输出格式:
一行,包含一个标准格式日期。
样例输入:
3/18/2007
样例输出:
Mar 18, 2007, Sunday
样例输入2:
Feb 28, 2000
样例输出2:
Feb 29, 2000,Tuesday
以下是本人做的但怎么弄都不好使!
package ssss;
import java.util.GregorianCalendar;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.text.DateFormatSymbols;
import static java.util.Calendar.*;
public class riqi
{
public static void main(String[] args)
{
int moth = 0;
@SuppressWarnings("unused")
String mm= "";
String str = null;
BufferedReader dateyy = new BufferedReader(
new InputStreamReader(System.in));
try
{
str = dateyy.readLine();
}
catch(IOException e)
{
e.printStackTrace();
System.exit(1);
}
String text="[, /]";
int[] limits = {0};
for(int limit:limits)
{
String[] tokens = str.split(text, limit);
if(tokens[2]==" ")
{
tokens[2]=tokens[3];
}
if (Integer.parseInt (tokens[2])<=1800 ||
Integer.parseInt (tokens[2])>=2100)
{
System.out.print ("该年份超出计算机认知的范围!");
break;
}
System.out.print(tokens[0]);
if(tokens[0]=="1"||tokens[0]=="Jan")
{moth=1;mm="Jan";}
else if (tokens[0]=="2"||tokens[0]=="Feb")
{moth=2;mm="Feb";}
else if (tokens[0]=="3"||tokens[0]=="Mar")
{moth=3;mm="Mar";}
else if (tokens[0]=="4"||tokens[0]=="Apr")
{moth=4;mm="Apr";}
else if (tokens[0]=="5"||tokens[0]=="May")
{moth=5;mm="May";}
else if (tokens[0]=="6"||tokens[0]=="Jun")
{moth=6;mm="Jun";}
else if (tokens[0]=="7"||tokens[0]=="Jul")
{moth=7;mm="Jul";}
else if (tokens[0]=="8"||tokens[0]=="Aug")
{moth=8;mm="Aug";}
else if (tokens[0]=="9"||tokens[0]=="Sep")
{moth=9;mm="Sep";}
else if (tokens[0]=="10"||tokens[0]=="Oct")
{moth=10;mm="Oct";}
else if (tokens[0]=="11"||tokens[0]=="Nov")
{moth=11;mm="Nov";}
else if (tokens[0]=="12"||tokens[0]=="Dec")
{moth=12;mm="Dec";}
else
{ System.out.println("您输入的月份不是正确的格式!");
break;}
int day=Integer.parseInt(tokens[1]);
int year=Integer.parseInt(tokens[2]);
GregorianCalendar date=new GregorianCalendar(year,moth-1,day);
String[] weekdays=new DateFormatSymbols().getWeekdays();
String week=weekdays[date.get(DAY_OF_WEEK)];
System.out.println(week);
}
}
}
----------------解决方案--------------------------------------------------------