(2022级)成都工业学院Web技术基础(WEB)实验七:Date、Math、Array对象使用

写在前面

1、基于2022级计算机大类实验指导书

2、代码仅提供参考,前端变化比较大,按照要求,只能做到像,不能做到一模一样

3、图片和文字仅为示例,需要自行替换

4、如果代码不满足你的要求,请寻求其他的途径

运行环境

window11家庭版

WebStorm 2023.2.2

实验要求、源代码和运行结果

1、采用HBuilder 编写代码,实现图7-1所示的显示日期、时间及倒计时效果。要求:

① 在页面中通过JavaScript的Date对象显示当前的日期、星期、时间。

② 使用数组Array对象显示当天的星期信息。

③ 根据当前的时间显示相应的问候语(上午好、下午好或晚上好)。

④ 计算出当天距离指定日期的相差天数,运用Math对象的相应方法得到整数的天数。

⑤ 用doucment.write()显示以上所得到的信息。

7f22e9d9115a42f38c51aa4e9699a30d.png

图7-1  显示日期、时间及倒计时效果示意图

(1)新建html文档,在<script></script>标签之间书写JavaScript代码实现功能。

(2)采用JavaScript的Date对象获取当前日期和时间。

(3)通过数组Array对象显示当天的星期信息。例:arrayDay=["日" , "一" , "二" , "三" , "四" , "五" , "六" ]; 及"星期" + arrayDay[getDay()]来实现。

(4)通过Math对象的floor()方法来得到倒计时的天数。

(5)通过if语句实现相应的问候语信息。

(6)通过document.write() 显示以上所得到的信息。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <script>
        function getCurrentDate() {
            return new Date();
        }
        function formatDate(date) {
            return date.getFullYear() + "年" + (date.getMonth() + 1) + "月" + date.getDate() + "日";
        }
        function formatDayOfWeek(date) {
            var dayOfWeek = ["日", "一", "二", "三", "四", "五", "六"];
            return "星期" + dayOfWeek[date.getDay()];
        }
        function formatTime(date) {
            return padZero(date.getHours()) + ":" + padZero(date.getMinutes()) + ":" + padZero(date.getSeconds());
        }
        function calculateCountdownDays(targetDate) {
            var currentDate = getCurrentDate();
            return Math.floor((targetDate - currentDate) / (1000 * 60 * 60 * 24));
        }
        function getGreeting(hour) {
            if (hour < 12) {
                return "上午好!";
            } else if (hour < 18) {
                return "下午好!";
            } else {
                return "晚上好!";
            }
        }
        function padZero(num) {
            return num < 10 ? "0" + num : num;
        }
        function displayDateTime() {
            var currentDate = getCurrentDate();
            var dateString = "日期:" + formatDate(currentDate);
            var dayString = formatDayOfWeek(currentDate);
            var timeString = "时间:" + formatTime(currentDate);
            var targetDate = new Date("2024-1-1");
            var timeDifference = calculateCountdownDays(targetDate);
            var greeting = getGreeting(currentDate.getHours());

            document.write(dateString + "<br>");
            document.write(dayString + "<br>");
            document.write(timeString + "<br>");
            document.write("距离指元旦还有 " + timeDifference + " 天<br>");
            document.write(greeting);
        }
    </script>
    <title></title>
</head>
<body>
<script>
    displayDateTime();
</script>
</body>
</html>

39640f60fb8d4e50a12e324847581461.png

2、采用HBuilder 编写代码,实现图7-2所示的动态时钟效果。要求:

① 页面按图7-2进行布局。

② 点击计时开始文本框内的文本每秒钟改变一次,与系统时间保持一致。

③ 点击计时结束文本框内的文本暂停变化。

④ 分别编写计时开始和计时结束函数完成相应功能。

⑤ 当小时、分钟、秒数值小于10时,首位要补0。

0efc97460fe14323b65cb5ca10e068ac.jpeg 

图7-2  时钟效果示意图

(1)新建html文档,在<script></script>标签之间书写JavaScript代码实现功能。

(2)采用<form><input>等标签完成页面内容的编写。

(3)编写开始计时和结束计时的函数。

(4)分别在计时开始和计时结束按钮上通过onClick事件绑定计时和结束函数。

(5)功能测试。

注:

1)采用JavaScript的Date对象获取当前时间。

2)计时采用setInterval(code,millsecond)实现;计时结束采用clearInterval(id)

实现,其中id为setInterval函数对应的ID标识。

​
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <style>
        form {
            text-align: center;
        }

        #timeDisplay {
            width: 150px;
            text-align: center;
        }

        #startButton, #stopButton {
            width: 75px;
        }
    </style>
    <script>
        let startClockInterval;

        function startClock() {
            startClockInterval = setInterval(updateStartTime, 1000);
        }

        function stopClock() {
            clearInterval(startClockInterval);
        }

        function updateStartTime() {
            const startTimeElement = document.getElementById('timeDisplay');
            const currentDate = new Date();

            const hours = padZero(currentDate.getHours());
            const minutes = padZero(currentDate.getMinutes());
            const seconds = padZero(currentDate.getSeconds());

            startTimeElement.value = `${hours}:${minutes}:${seconds}`;
        }

        function padZero(value) {
            return value < 10 ? `0${value}` : value;
        }
    </script>
    <title></title>
</head>
<body>
<form>
    <button type="button" id="startButton" onclick="startClock()">开始计时</button>
    <input type="text" id="timeDisplay" value="00:00:00" readonly>
    <button type="button" id="stopButton" onclick="stopClock()">结束计时</button>
</form>
</body>
</html>

​

点击开始计时前

863446b5a0a744608b54f065d354f95f.png

点击开始计时后

c84952751fa84b87b3654c257f8ca1bb.png

点击结束计时后

bd5a785b0656476b969130c257af08e4.png

  • 24
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值