1. 程式人生 > >女朋友老是問我時間多久,於是我。。。

女朋友老是問我時間多久,於是我。。。

事件起因

女朋友每天都在學習申論,總是向我吐槽腦子不夠用了,可是又喜歡來找我玩,這來找我玩沒事啊,可令人頭疼的問題卻發生了,本來平時我一個人不太愛吃早飯,基本早上就是一個蘋果墊墊肚子,但是她一來,我們早上就要煮粥,由於冬天到了,我們都不想早起煮飯,而恰巧與剛好,我的電飯煲擁有預約煮粥的功能,由於我早上九點鐘要上班,八點半要出門,所以在她煮粥的時候老是問我預約多久的時間才能完美的煮出一鍋粥,這真的是一個令我頭疼的問題,所以就有了編寫一個程式的想法。

準備工作

  • 由於之前學過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 + "分")

})