我遇到日历api的问题:
public class MainActivity extends AppCompatActivity {
TextView t1, t2, t3;
Calendar c;
int day, hour, minute;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
t1=(TextView)findViewById(R.id.t1);
t2=(TextView)findViewById(R.id.t2);
t3=(TextView)findViewById(R.id.t3);
c=Calendar.getInstance();
day=c.get(Calendar.DAY_OF_WEEK);
hour=c.get(Calendar.HOUR_OF_DAY);
minute=c.get(Calendar.MINUTE);
t1.setText(Integer.toString(day));
t2.setText(Integer.toString(hour));
t3.setText(Integer.toString(minute));
}
此代码应该为我提供3个textviews中的当前日期,小时和分钟 但是它给出了错误的值(只有几分钟是正确的),为什么它不起作用?
答案 0 :(得分:0)
我自己运行此代码,但我没有看到任何错误。它于今天,星期二,下午2:50执行:
第一个TextView
显示值" 3",这是常量Calendar.TUESDAY
的定义值。 (一周的第一天定义为星期日,值的范围是1到7.)
第二个TextView
显示值" 14"。 HOUR_OF_DAY
使用24小时制,因此14与2PM相同。如果您想要12小时的时间,请使用Calendar.HOUR
代替(但请注意,中午和午夜由" 0"代表" 12")。
第三个TextView
显示值" 50"。这里不多说;这是下午2:50所以分钟是50。
答案 1 :(得分:-1)
您的代码是正确的,没有问题!如果您不知道Calendar
中的java.utils
不会直接返回字符串,而是当天的数字表示int
,例如,如果星期几是星期日,您将会看到1
。所以,如果你想要实际的字符串你必须自己转换。但如果你只想int
什么也不做。此外,如果您使用c.get(Calendar.HOUR_OF_DAY);
,您将获得24 hours
系统中的小时数。如果你想在12 hours
系统中,你将不得不使用c.get(Calendar.HOUR);
(请记住这个方法是午夜,中午是0使用此方法)。我将添加一个方法来将int
的工作日更改为“星期一”等字符串。
以下是您的完整代码应如何:
public class MainActivity extends AppCompatActivity {
TextView t1, t2, t3;
Calendar c;
int hour, minute;
String day;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
t1=(TextView)findViewById(R.id.t1);
t2=(TextView)findViewById(R.id.t2);
t3=(TextView)findViewById(R.id.t3);
c=Calendar.getInstance();
day= getDayOfWeek(c.get(Calendar.DAY_OF_WEEK));
hour=c.get(Calendar.HOUR);
minute=c.get(Calendar.MINUTE);
t1.setText((day));
t2.setText(Integer.toString(hour));
t3.setText(Integer.toString(minute));
private String getDayOfWeek(int value){
String day = "";
switch(value){
case 1:
day="Sunday";
break;
case 2:
day="Monday";
break;
case 3:
day="Tuesday";
break;
case 4:
day="Wednesday";
break;
case 5:
day="Thursday";
break;
case 6:
day="Friday";
break;
case 7:
day="Saturday";
break;
}
return day;
}
}
我希望这会清除java中Calendar
的一些误解! 快乐编码!