事件起因
❝女朋友每天都在学习申论,总是向我吐槽脑子不够用了,可是又喜欢来找我玩,这来找我玩没事啊,可令人头疼的问题却发生了,本来平时我一个人不太爱吃早饭,基本早上就是一个苹果垫垫肚子,但是她一来,我们早上就要煮粥,由于冬天到了,我们都不想早起煮饭,而恰巧与刚好,我的电饭煲拥有预约煮粥的功能,由于我早上九点钟要上班,八点半要出门,所以在她煮粥的时候老是问我预约多久的时间才能完美的煮出一锅粥,这真的是一个令我头疼的问题,所以就有了编写一个程序的想法。
❞
准备工作
由于之前学过Python,觉得Python用起来很方便,所以打算用Python写一个程序,最先的思路是写一个Windows应用程序,但是回头一想,使用起来太麻烦了,于是收集资料,看看是否能打包成安卓应用,结果一百度还真有,可以使用kivy库,话不多说马上开干。。。 突然发现Python打包太繁琐了,刚好最近学过AutoJS,还是用AutoJs吧。
程序逻辑
算法的思想其实很简单,首先得让用户明确吃饭时间和电饭煲的煮饭时长,三者相减即可。 预约时间=吃饭时间-当前时间-煮饭耗时
运行截图
下载地址:https://wwa.lanzous.com/iLh5giebrid
代码
"ui";
showInputUI();
ui.statusBarColor("#e2eafc")
// toast(device.width)
//显示输入界面
function showInputUI() {
ui.layout(
<frame background="#e2eafc" >
<img w="1" src="https://s3.ax1x.com/2020/11/14/DCTerF.jpg"/>
<vertical h="auto" margin="0 20">
<linear>
<text id="currentTime" margin="0 25" gravity="left" textStyle="bold" color="#111111" size="18">当前时间:</text>
</linear>
<linear >
<text text="请选择吃饭时间" textStyle="bold" textColor="black" textSize="18sp" />
<timepicker id="eatTime" timePickerMode="spinner" />
</linear>
<text text="请输入煮饭时长:" textStyle="bold" textColor="black" textSize="18sp" />
<input id="inputTime" margin="0 3" marginTop="-2" w="*" gravity="center" hint="默认煮饭时长70分钟" textSize="16sp" />
<linear gravity="center">
<button id="submit" text="开始计算" w="auto" style="Widget.AppCompat.Button.Colored" />
</linear>
<linear>
{/* <text text="直线无限进度条" textColor="black" textSize="16sp" marginTop="24"/> */}
<progressbar w="*" h="20" indeterminate="true" style="@style/Base.Widget.AppCompat.ProgressBar.Horizontal" />
</linear>
<linear gravity="left" marginTop="20">
<text id="Timer" textStyle="bold" color="#111111" size="25"></text>
</linear>
<linear gravity="left">
<text id="BookingTime" textStyle="bold" color="#111111" size="25"></text>
</linear>
</vertical>
</frame>
);
}
var Hours, Minutes, Seconds;
//循环显示当前时间
setInterval(() => {
var today = new Date();
Hours = today.getHours()
Minutes = today.getMinutes()
Seconds = today.getSeconds()
if (today.getHours() < 10) {
Hours = "0" + today.getHours()
}
if (today.getMinutes() < 10) {
Minutes = "0" + today.getMinutes()
}
if (today.getMinutes() < 10) {
Minutes = "0" + today.getMinutes()
}
if (today.getSeconds() < 10) {
Seconds = "0" + today.getSeconds()
}
var NowTime = Hours + ":" + Minutes + ":" + Seconds
ui.currentTime.setText("当前时间:" + NowTime)
}, 1)
ui.submit.click(() => {
var cTime, cHours, cMinutes;
var cookingTime, eatHours, eatMinutes, eatTotalTime, totalTime, BookingTime, sHours, sMinutes;
// log("当前时间"+Hours)
//获取吃饭时间
eatHours = ui.eatTime.getCurrentHour();
eatMinutes = ui.eatTime.getCurrentMinute();
eatTotalTime = eatHours*60 + eatMinutes;
// log(eatTotalTime)
//获取煮饭时长,由于我家的默认是70分钟,所以默认值为70
if (ui.inputTime.getText() == "") {
cookingTime = 70;
// log(cookingTime);
} else {
cookingTime = ui.inputTime.getText()
// log(cookingTime);
}
//获取当前总时长
totalTime = parseInt(Hours) * 60 + parseInt(Minutes);
// log("当前时间后"+Hours)
//计算预约时间
if (eatHours - Hours < 0) {
BookingTime = eatTotalTime + 24 * 60 - cookingTime - totalTime;
} else {
BookingTime = eatTotalTime - cookingTime - totalTime;
}
// log(BookingTime)
//显示信息
sHours = Math.floor(BookingTime / 60);
sMinutes = BookingTime % 60;
//校验煮饭时间
var checkHours = parseInt(Hours) + sHours;
var checkMinutes =parseInt(Minutes) + parseInt(sMinutes);
log(checkMinutes)
if (checkHours > 24) {
checkHours = checkHours-24;
}
if (checkMinutes > 60) {
checkMinutes =checkMinutes-60;
checkHours++;
}
ui.Timer.setText("电饭煲将在:" + checkHours + "点" + checkMinutes + "分煮饭")
ui.BookingTime.setText("电饭煲的预约时间是:" + sHours + "小时" + sMinutes + "分")
})