此java程序的帮助
我正在编写一个java程序,以“1999-5”格式输入年份和月份,即1999年和6月。(月份从0=1月,1=2月开始) 其中1999是年份,5是月份的数字序列(对应于6月)。程序应该显示1999年6月28日的日期,在这种情况下,输出将是星期一 我有逻辑和部分代码。我输入一个字符串,将其拆分,将其解析为整数并进行处理。如何在字符串输入中分隔“-”分隔符 该计划的投入应为“1999-5年” 输出应该是星期一。(一九九九年六月二十八日星期一)此java程序的帮助,java,Java,我正在编写一个java程序,以“1999-5”格式输入年份和月份,即1999年和6月。(月份从0=1月,1=2月开始) 其中1999是年份,5是月份的数字序列(对应于6月)。程序应该显示1999年6月28日的日期,在这种情况下,输出将是星期一 我有逻辑和部分代码。我输入一个字符串,将其拆分,将其解析为整数并进行处理。如何在字符串输入中分隔“-”分隔符 该计划的投入应为“1999-5年” 输出应该是星期一。(一九九九年六月二十八日星期一) 请告诉我是否有更好的方法。temp应该是一个字符串数组(s
请告诉我是否有更好的方法。
temp
应该是一个字符串数组(string[]temp
),您可以分别解析int、num[0]和num[1]以获得1999和5。使用带有“-dd”
的模式来操作输入
但我们还需要操纵月份,以获得6月份的输入5
String pattern = "yyyy-MM-dd";
Scanner sc = new Scanner(System.in);
String name = sc.nextLine();
SimpleDateFormat formatter = new SimpleDateFormat(pattern);
formatter.setLenient(false);
int year = Integer.parseInt(name.substring( 0, name.lastIndexOf( '-' ) ));
int month = Integer.parseInt(name.substring( name.lastIndexOf( '-' )+1 ));
Date date = formatter.parse(year+"-"+(month+1)+"-28");
if( date != null ) {
System.out.println(date);
}
您可以这样做:
String name = "1999-5";
String[] temp = name.split("-");
int year = Integer.parseInt(temp[0]);
int month = Integer.parseInt(temp[1]);
请注意,parseInt()
可能会抛出一个NumberFormatException
,因此您可能希望捕获它
顺便说一句,你可以得到一周中的哪一天:看看。在这种情况下,你最好使用
SimpeDateFormat
Date d = new SimpleDateFormat("yyyy-MM-dd").parse(name + "-28")
使用日历
获取星期几:
Calendar cal = Calendar.getInstance();
cal.setTime(d);
int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK)
//switch (dayOfWeek) ...
你为什么要打印临时工?split方法返回一个字符串数组,因此您应该对temp[0]和temp[1]进行parseInt(当然,如果它们存在的话)。no no im not printing temp。我在测试代码,所以把它弄乱了一点。@TheStijin:我没有注意到问题被标记为
家庭作业@macro:我没有标记为家庭作业!我不知道这是怎么回事。@user750092:另一个名声更高的SO用户也这样做了,因为你的问题看起来像是作业。真的是作业吗?如果没有,我可以去掉标签。虽然看起来像是家庭作业,但这不是家庭作业。这是我朋友一直坚持的问题。他现在清楚了。多亏了你们。。不管它是否也被标记为家庭作业。SimpleDateFormat
是否关心在指定MM
时当月没有前导0,还是只需要使用M
?不,不关心,2011-5可以使用格式yyyy-MM@veredesmarald字体正如thestijn所说,不要紧,我认为不需要月+1;看问题的第一行。
Calendar cal = Calendar.getInstance();
cal.setTime(d);
int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK)
//switch (dayOfWeek) ...