来一个高考倒计时程序

2023年的高考已不足百天

#include <stdio.h>
#include <time.h>
#include <windows.h> // Windows系统下的延时函数头文件
int main() {
    // 设置高考时间为2023年6月7日9时
    struct tm examTime = {0};
    examTime.tm_year = 2023 - 1900; // 年份要减去1900
    examTime.tm_mon = 5; // 月份从0开始计数,即5表示6月
    examTime.tm_mday = 7;
    examTime.tm_hour = 9;
    // 获取当前时间
    time_t nowTime = time(NULL);
    struct tm *pNow = localtime(&nowTime);
    // 计算时间差
    time_t examSecs = mktime(&examTime);
    time_t nowSecs = mktime(pNow);
    time_t diffSecs = examSecs - nowSecs;
    // 输出倒计时信息
    while (diffSecs >= 0) {
    	//清屏再显示
		system("cls");
        printf("距离2023年高考还有:\n");
        printf("%ld天 ", diffSecs / (24 * 60 * 60));
        diffSecs %= 24 * 60 * 60;
        printf("%ld小时 ", diffSecs / (60 * 60));
        diffSecs %= 60 * 60;
        printf("%ld分钟 ", diffSecs / 60);
        diffSecs %= 60;
        printf("%ld秒\n", diffSecs);        
        Sleep(1000); // 暂停1秒钟,单位为毫秒
        nowSecs += 1; // 当前时间加1秒
        pNow = localtime(&nowSecs); // 更新当前时间
        diffSecs = examSecs - nowSecs; // 重新计算时间差
    }
    printf("高考已经开始!加油!\n");
    return 0;
}

这个控制台显示的好象有点闪烁,改一改。

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <windows.h> // Windows系统下需要添加这个头文件

int main()
{
	// 计算高考日期
	struct tm examTime = {0};
	examTime.tm_year = 123; // 从1900年开始算,2023年-1900=123
	examTime.tm_mon = 6 - 1; // 月份从0开始算,6月需要减1
	examTime.tm_mday = 7;
	examTime.tm_hour = 9;
	examTime.tm_min = 0;
	examTime.tm_sec = 0;

	// 计算距离高考的时间差
	time_t examSecs = mktime(&examTime); // 高考的时间戳
	time_t nowSecs = time(NULL); // 当前时间戳
	struct tm* pNow = localtime(&nowSecs); // 将时间戳转换为本地时间
	nowSecs = mktime(pNow); // 将本地时间转换为时间戳
	long diffSecs = examSecs - nowSecs;

	// 获取标准输出的句柄
	HANDLE hStdout = GetStdHandle(STD_OUTPUT_HANDLE);

	// 将控制台的显示模式设置为无缓冲模式
	DWORD prev_mode;
	GetConsoleMode(hStdout, &prev_mode);
	SetConsoleMode(hStdout, CONSOLE_FULLSCREEN_MODE);

	// 输出倒计时信息
	while (diffSecs >= 0)
	{
		//不显示光标样式 
		HANDLE consoleHandle = GetStdHandle(STD_OUTPUT_HANDLE);
		CONSOLE_CURSOR_INFO info;
		info.dwSize = 100;
		info.bVisible = FALSE;
		SetConsoleCursorInfo(consoleHandle, &info);

		// 将光标移动到指定位置输出信息
		COORD pos = {0, 0};
		SetConsoleCursorPosition(hStdout, pos);
		printf("距离2023年高考还有:\n");
		printf("%ld天 ", diffSecs / (24 * 60 * 60));
		diffSecs %= 24 * 60 * 60;
		printf("%ld小时 ", diffSecs / (60 * 60));
		diffSecs %= 60 * 60;
		printf("%ld分钟 ", diffSecs / 60);
		diffSecs %= 60;
		printf("%ld秒 ", diffSecs);
		// 等待1秒钟
		Sleep(1000);
		// 重新计算时间差
		nowSecs = time(NULL);
		pNow = localtime(&nowSecs);
		nowSecs = mktime(pNow);
		diffSecs = examSecs - nowSecs;
	}
	//还原控制台的显示模式
	SetConsoleMode(hStdout, prev_mode);
	printf("\n高考结束,加油!!!\n");
	return 0;
}

顺便再来一个python版的随机点名器

学生名单放在studenname.txt文本文件里,每行一个姓名。

import random

# 读取学生姓名列表
with open('studentname.txt', 'r') as f:
    student_list = f.readlines()

# 随机选取学生姓名
selected_student = random.choice(student_list)

# 输出点名结果
print(f"选中的学生是:{selected_student.strip()}")

加一个tkinter,加两个按钮。

import tkinter as tk
from tkinter import filedialog, messagebox
import random

class App(tk.Tk):
    def __init__(self):
        super().__init__()
        self.title("我的点名器")
        self.geometry("300x100")
        
        # 创建选择文件的按钮
        self.select_file_button = tk.Button(self, text="选择文件", command=self.select_file)
        self.select_file_button.pack(pady=10)
        
        # 创建点名按钮
        self.pick_name_button = tk.Button(self, text="开始点名", command=self.pick_name, state="disabled")
        self.pick_name_button.pack(pady=10)
        
        # 文件路径
        self.file_path = None
        
    def select_file(self):
        # 弹出文件选择对话框
        self.file_path = filedialog.askopenfilename(filetypes=[("文本文件", "*.txt")])
        
        # 如果选择了文件,则启用点名按钮
        if self.file_path:
            self.pick_name_button.config(state="normal")
        
    def pick_name(self):
        # 从文件中随机选择一行
        with open(self.file_path, "r") as f:
            lines = f.readlines()
            if len(lines) > 0:
                name = random.choice(lines).strip()
                messagebox.showinfo("本次点名幸运学生:", f"恭喜:{name}")
        
if __name__ == "__main__":
    app = App()
    app.mainloop()

 基本完工,大家再改改吧!

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
好的,我可以为您提供相关的代码和思路。 首先,我们需要获取当前时间和高考时间,然后计算它们之间的时间差,最后将时间差以天、小时、分钟和秒的形式显示在网页上。 以下是一个简单的示例代码: ```html <!DOCTYPE html> <html> <head> <title>高考计时</title> </head> <body> <h1>距离高考还有</h1> <div id="countdown"></div> <script> // 高考日期 var examDate = new Date("2022-06-07"); // 更新计时 function updateCountdown() { // 获取当前日期 var currentDate = new Date(); // 计算时间差 var timeDiff = examDate.getTime() - currentDate.getTime(); var days = Math.floor(timeDiff / (1000 * 60 * 60 * 24)); var hours = Math.floor((timeDiff % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)); var minutes = Math.floor((timeDiff % (1000 * 60 * 60)) / (1000 * 60)); var seconds = Math.floor((timeDiff % (1000 * 60)) / 1000); // 显示计时 document.getElementById("countdown").innerHTML = days + " 天 " + hours + " 小时 " + minutes + " 分钟 " + seconds + " 秒 "; } // 每秒更新一次计时 setInterval(updateCountdown, 1000); </script> </body> </html> ``` 以上代码将在网页上显示一个标题和一个 `<div>` 元素,用于显示时间差。我们使用 JavaScript 获取当前日期和高考日期,计算它们之间的时间差,并将时间差以天、小时、分钟和秒的形式显示在网页上。我们还使用 `setInterval()` 函数每秒更新一次计时。 您可以将此代码复制并粘贴到一个新的 HTML 文件中,并在浏览器中打开该文件以查看计时效果。如果您需要自定义样式,可以在 HTML 文件中添加 CSS 样式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hbqjzx

你的鼓励将是我分享的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值