成都工业学院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()显示以上所得到的信息。

图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>

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

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

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

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

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

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

 

图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>

​

点击开始计时前

点击开始计时后

点击结束计时后

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/247958.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

pytest + yaml 框架 -59.用例失败重跑机制pytest-rerunfailures

前言 有些接口可能不太稳定&#xff0c;第一次跑的时候由于网络原因或者其它原因失败&#xff0c;但是重新跑2次又成功了。 对于这种需要重新跑几次的场景&#xff0c;可以使用用例失败重跑机制&#xff0c;需安装pytest-rerunfailures 插件。 场景示例 失败重跑需要依赖 py…

C++相关闲碎记录(13)

1、排序算法 &#xff08;1&#xff09;对所有元素排序sort(), stable_sort() #include "algostuff.hpp"using namespace std;int main() {deque<int> coll;INSERT_ELEMENTS(coll, 1, 9);INSERT_ELEMENTS(coll, 1, 9);PRINT_ELEMENTS(coll, "on entry: …

SpringBoot 究竟是如何跑起来的

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是Java方文山&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;推荐给大家我的专栏《SpringBoot》。&#x1f3af;&#x1f3af; &…

CentOS 防火墙管理及使用的redis基本常用命令

文章目录 防火墙管理使用systemctl管理防火墙启动、关闭使用firewalld-cmd配置访问防火墙策略firewalld配置文件修改限制来源IP docker使用 redis 防火墙管理 需要关闭防火墙或者开启对应端口 使用systemctl管理防火墙启动、关闭 启动防火墙&#xff1a; systemctl start fi…

HPM6750系列--总章

本栏目介绍先楫半导体出品的HPM6750芯片&#xff08;基于HPM6750evkmini开发板&#xff09; ​​​​​​​ 内容概述 HPM6750系列--第一篇 初识HPM6750 介绍HPM6750芯片信息&#xff0c;包括主频、内存、外设配置&#xff0c;并列举了各种开发工具和开发资源。 HPM6750系列--…

【C语言初阶】什么操作符你还没搞懂?试试这篇文章让你彻底理解各种操作符!

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏:《C语言初阶篇》 《C语言进阶篇》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 文章目录 一、 算术操作符&#xff1a;1.1 加减乘除 二、 移位操作符&#xff1a;2.1 计算机中整数的存储2.2 >> 右…

JVM的类的生命周期

目录 前言 1. 加载&#xff08;Loading&#xff09;&#xff1a; 2. 验证&#xff08;Verification&#xff09;&#xff1a; 3. 准备&#xff08;Preparation&#xff09;&#xff1a; 4. 解析&#xff08;Resolution&#xff09;&#xff1a; 5. 初始化&#xff08;Ini…

Python3 中常见的数据类型

目录 数字(Number)总结 字符串(String)字符串运算符字符串格式化字符串的截取总结 List&#xff08;列表&#xff09;更新列表删除列表元素列表函数&方法总结 Tuple&#xff08;元组&#xff09;修改元组删除元组总结 Set&#xff08;集合&#xff09;Dictionary&#xff0…

开启虚拟世界的新篇章

近年来&#xff0c;随着科技的迅猛发展&#xff0c;人们生活方式的改变也日益显著。而其中一个最引人注目的变化便是数字人直播的兴起。数字人直播以其独特的魅力&#xff0c;成为了当今社会中备受关注的热门话题。本文将从数字人直播的定义、应用领域以及未来发展等方面&#…

一个程序员的养生指南

文章目录 一个程序员的养生指南 一个程序员的养生指南 大学毕业后几年&#xff0c;体重长得比工作年限还快&#xff0c;不到3年&#xff0c;增重将近20公斤&#xff0c;也不知道咋做到的。直到2019年年底&#xff0c;已经到了走路喘气&#xff0c;爬楼胸闷&#xff0c;下蹲头晕…

文献速递:PET-影像组学专题—18F-FDG PETCT影像学的影像组学模型用于预测早期宫颈鳞状细胞癌无病生存率

文献速递&#xff1a;PET-影像组学专题—18F-FDG PET/CT影像学的影像组学模型用于预测早期宫颈鳞状细胞癌无病生存率 01 文献速递介绍 宫颈癌是女性死亡的主要原因之一。在早期宫颈癌中&#xff0c;根治性手术加/不加个体化辅助化疗放疗是指南推荐的治疗选择&#xff0c;然而…

如何使用蜘蛛池蚂蚁SEO

​蜘蛛池是一种利用搜索引擎爬虫进行推广营销的方式。它的核心是建立一个能够吸引搜索引擎爬虫的网站群&#xff0c;这些网站能够产生大量的优质内容&#xff0c;并形成一个巨大的网站群&#xff0c;从而吸引更多的搜索引擎爬虫。 如何联系蚂蚁seo&#xff1f; baidu搜索&…

AI人工智能在建筑智能化工程设计的应用

AI人工智能在建筑智能化工程设计的应用 相关政策&#xff1a; 建筑智能化工程设计资质是为了合理设计各种智能化系统&#xff0c;让它们有机地结合成为有效的整体作用。在工程设计标准中&#xff0c;智能化资质设计全称为建筑智能化系统专项设计资质。企业一旦具备智能化设计资…

PFA容量瓶应用工业制造领域PFA定容瓶精确测量的重要性

容量瓶是保证科学、医学和工业等各个领域精确测量的重要工具。这些专门的容量瓶被设计用来在特定的温度下保持精确的液体体积&#xff0c;使它们成为在工作中需要高精确度的专业人士不可或缺的工具。在这份容量瓶终极指南中&#xff0c;今天我们来探讨下这些仪器的重要性&#…

蓝牙物联网智慧工厂解决方案

蓝牙物联网智慧工厂解决方案是一种针对工厂管理的智能化解决方案&#xff0c;通过蓝牙、物联网、大数据、人工智能等技术&#xff0c;实现工厂人员的定位、物资的定位管理、车间的智慧巡检、智慧安防以及数据的可视化等功能。 蓝牙物联网智慧工厂解决方案构成&#xff1a; 人员…

GD32F4标准外设库

学习目标 了解标准库来源熟悉模板搭建流程掌握在已有模板基础下进行开发学习内容 标准外设库获取 标准固件库获取我们可以从官网进行下载。 下载链接:兆易创新GigaDevice-资料下载兆易创新GD32 MCU 找到 GD32F4xx Firmware Library 这个压缩包 下载完成后,进行解压,解压…

人工智能中的顺序学习:概念、应用和未来方向

一、介绍 人工智能 &#xff08;AI&#xff09; 中的顺序学习是一个关键研究领域&#xff0c;近年来引起了人们的极大兴趣。它指的是人工智能系统从数据序列中学习的能力&#xff0c;其中数据点的顺序至关重要。本文将探讨人工智能中顺序学习的概念、其重要性、应用、方法、挑战…

基于3D-CGAN的跨模态MR脑肿瘤分割图像合成

3D CGAN BASED CROSS-MODALITY MR IMAGE SYNTHESIS FOR BRAIN TUMOR SEGMENTATION 基于3D-CGAN的跨模态MR脑肿瘤分割图像合成背景贡献实验方法Subject-specific local adaptive fusion&#xff08;针对特定主题的局部自适应融合&#xff09;Brain tumor segmentation model 损失…

Qt容器QScrollArea小部件的滚动视图

​# QScrollArea 平台:linux、windows、mac皆可,Qt版本:Qt5.14.2 QScrollArea是Qt框架中用于提供可滚动视图区域的小部件。它通常被用来包含一个较大的内容区域,并且可以在其中嵌入其他小部件。下面是一些常用的QScrollArea函数: 1. `setWidget(QWidget *widget)`: 设置在…

LeetCode 每日一题 Day 12 (Hard)|| 二维前缀和二维差分

2132. 用邮票贴满网格图 给你一个m x n的二进制矩阵 grid &#xff0c;每个格子要么为 0 &#xff08;空&#xff09;要么为 1 &#xff08;被占据&#xff09;。 给你邮票的尺寸为 stampHeight x stampWidth 。我们想将邮票贴进二进制矩阵中&#xff0c;且满足以下 限制 和 …