• 程序逻辑

    运行截图

    代码

    "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 + "分")

    }) 

    11-15 10:02
    查看更多