黑马程序员技术交流社区
标题:
想输出星期几,为什么DAY_OF_WEEK会自动变成DAY_OF_WEEK_IN_MONTH?
[打印本页]
作者:
陈兆辉
时间:
2014-9-21 23:41
标题:
想输出星期几,为什么DAY_OF_WEEK会自动变成DAY_OF_WEEK_IN_MONTH?
本帖最后由 陈兆辉 于 2014-9-22 22:21 编辑
做测试题,需要输出星期几,但是测试的时候发现DAY_OF_WEEK会自动变成DAY_OF_WEEK_IN_MONTH,返回的字段值总是多2。哪位大神告诉我这是怎么一回事?特么蛋都碎了!
package com.itheima;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Calendar;
/* 第9题:
编写程序,该程序启动后用户可以按“yyyy-MM-dd”的格式输入一个日期,程序计算这一天是星期几,并且计算出是一年中的第几天。*/
public class Test9 {
public static void main(String[] args) throws IOException {
//定义键盘读取流,循环读取
BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
String line = null;
while((line = bufr.readLine())!=null){ //为了代码简便,这里就不进行处理了。
//输入over,程序结束
if("over".equals(line)||line==""){
System.out.println("谢谢使用,再见!");
break;
}
//输入的不符合规范,程序结束。
if(line.matches("[012]\\w{3}-[01]\\w-[012]\\w")){
System.out.println("您的输入有误,请重新输入!");
}
//用"-"切割,得到日期的字段的数组
String[] field = line.split("-");
//建立日历对象,并且根据每个字符串字段设置日历的日期。
Calendar calendar = Calendar.getInstance();
calendar.set(Integer.parseInt(field[0]),
Integer.parseInt(field[1]),
Integer.parseInt(field[2]));
//使用查表法,建立星期表
String[] weeks = {"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
//输出结果
System.out.println(field[0]+"年"+field[1]+"月"+field[2]+"日:"
+weeks[calendar.get(Calendar.DAY_OF_WEEK)]
+",一年中的第"+calendar.get(Calendar.DAY_OF_YEAR)+"天");
}
}
}
复制代码
作者:
陈兆辉
时间:
2014-9-21 23:43
坐等大神回复我啊!
作者:
陈兆辉
时间:
2014-9-21 23:54
亲们,谁帮我看一下呗?万分感谢啊!
作者:
陈兆辉
时间:
2014-9-22 09:22
为什么没人理我啊?自己顶!
作者:
陈兆辉
时间:
2014-9-22 09:50
持续顶贴中.
作者:
陈兆辉
时间:
2014-9-22 15:39
没人知道么?
作者:
陈兆辉
时间:
2014-9-22 16:22
真的没一个人知道么?我等着交测试题呢,等一天了,还是没结果,有点急啊!
作者:
陈兆辉
时间:
2014-9-22 20:54
顶之!!!!!
作者:
careit
时间:
2014-9-22 22:08
calendar.set(Integer.parseInt(field[0]),
Integer.parseInt(field[1]),//次数参数传递错了,改为如下
Integer.parseInt(field[2]));
复制代码
calendar.set(Integer.parseInt(field[0]),
Integer.parseInt(field[1])-1,//次数参数传递错了
Integer.parseInt(field[2]));
复制代码
使用时要看清参数的含义,不要理所当然喽
set
public final void
set
(int year, int month, int date)设置日历字段 YEAR、MONTH 和 DAY_OF_MONTH 的值。保留其他日历字段以前的值。如果不需要这样做,则先调用
clear()
。
参数:
year - 用来设置 YEAR 日历字段的值。month - 用来设置 MONTH 日历字段的值。Month 值是基于 0 的。例如,0 表示 January。date - 用来设置 DAY_OF_MONTH 日历字段的值。
另请参见:
set(int,int)
,
set(int,int,int,int,int)
,
set(int,int,int,int,int,int)
作者:
陈兆辉
时间:
2014-9-22 22:20
careit 发表于 2014-9-22 22:08
使用时要看清参数的含义,不要理所当然喽
setpublic final void set(int year, int ...
谢谢谢谢,是我粗心了,月份都是错的。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2