我正在为一家咖啡店创建一个应用程序,它应该显示有关咖啡店在给定时间内是关闭还是打开的信息。应用程序应显示“open”或“closed”作为 TextView
基于用户设备上的时间。
咖啡馆上午10:00营业,晚上24:00关门。此外,星期三至星期二开放(星期一和星期二不开放)。
为此,我创建了一个 TextView
xml布局,文本字段为空:
<TextView
android:id="@+id/status_text_view"
android:text=""
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
在java文件中,我创建了一个 TextView
元素并引用 TextView
中的布局 XML
文件:
TextView textView = (TextView) findViewById(R.id.status_text_view);
我还通过以下方式从用户设备获取日期和时间:
String currentDateTimeString = java.text.DateFormat.getDateTimeInstance().format(new Date());
从这里我不知道如何做最后的任务,显示“打开”或“关闭”在 TextView
根据用户设备上的日期、时间和日期进行布局。我所能做的就是只显示当前的日期和时间 TextView
使用代码进行布局:
textView.setText(currentDateTimeString);
注意:如果您共享任何代码,请添加注解来描述每一行代码,因为我是初学者。
3条答案
按热度按时间xqkwcwgp1#
Java8引入了
java.time.*
最好的套餐!您可以在JavaSE8日期和时间中找到更多信息你应该考虑使用
java.time.LocalDateTime
.下面的函数提供了一个简单的示例来确定您的店铺是否已打开:
然后你可以使用
isOpen()
比如:文档
stackoverflow:java:getminutes和gethours
2ledvvac2#
您可以设置if…else条件来设置textview。
我认为这是一个有帮助的例子。
第一个if语句(if((currenttime>opentime)&&(currenttime<closetime)),确保只有currenttime变量在1000小时到2400小时之间时,该语句才返回true。
第二个if语句(if((currentday!=星期一)&(当前日期!=daytesday(星期二)),确保仅当当前日期不是星期一或星期二时才返回true。
而且,currentdatetimestring同时给出date和当前时间。所以您必须根据currentday和currenttime解析它,或者从calendar类文档中找到合适的常量。
祝你好运。希望有帮助
wgx48brx3#
我用java编译器编写了您的解决方案,但是逻辑仍然适用于android,只需实现函数checkifclosed()、getday()和currenttime()。
android代码