java clock函数_有秒计时的数字时钟(Java语言)

本文介绍了一个Java编程题目,要求实现一个带有秒显示的数字时钟。需要编写Display、Clock类以及对应的构造函数、tick()方法和toString()方法。在Clock类中,使用Display类来表示小时、分钟和秒,并在tick()方法中更新时间。Main类的main函数已给出,用于读取输入并展示时钟的输出。示例运行展示了时钟从22:22:11到00:00:00的转换过程。
摘要由CSDN通过智能技术生成

题目内容:

这一周的编程题是需要你在课程所给的时钟程序的基础上修改而成。但是我们并不直接给你时钟程序的代码,请根据视频自己输入时钟程序的Display和Clock类的代码,然后来做这个题目。

我们需要给时钟程序加上一个表示秒的Display,然后为Clock增加以下public的成员函数:

public Clock(int hour, int minute, int second);

用hour, minute和second初始化时间。

public void tick();

“嘀嗒”一下,时间走1秒。

public String toString();

返回一个String的值,以“hh:mm:ss“的形式表示当前时间。这里每个数值都占据两位,不足两位时补0。如“00:01:22"。注意其中的冒号是西文的,不是中文的。

提示:String.format()可以用和printf一样的方式来格式化一个字符串。

另外写一个Main类,它的main函数为下面的样子,注意,必须原封不动地作为Main的main函数:

public static void main(String[] args) {

java.util.Scanner in = new java.util.Scanner(System.in);

Clock clock = new Clock(in.nextInt(), in.nextInt(), in.nextInt());

clock.tick();

System.out.println(clock);

in.close();

}

注意&#

好的,以下是使用 C 语言和 FLTK 库实现数字时钟和倒计时功能的示例代码: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h> #include <FL/Fl.H> #include <FL/Fl_Window.H> #include <FL/Fl_Button.H> #include <FL/Fl_Output.H> // 定义时钟和倒计时的窗口大小 #define WINDOW_WIDTH 350 #define WINDOW_HEIGHT 150 // 定义时钟和倒计时的文本显示区域 #define CLOCK_X 50 #define CLOCK_Y 30 #define CLOCK_WIDTH 100 #define CLOCK_HEIGHT 30 #define COUNTDOWN_X 220 #define COUNTDOWN_Y 30 #define COUNTDOWN_WIDTH 100 #define COUNTDOWN_HEIGHT 30 // 定义倒计时的按钮 #define START_BUTTON_X 140 #define START_BUTTON_Y 80 #define START_BUTTON_WIDTH 70 #define START_BUTTON_HEIGHT 30 // 定义倒计时数 #define COUNTDOWN_SECONDS 60 // 时钟和倒计时的回调函数 void clock_callback(void* data); void countdown_callback(void* data); // 时钟和倒计时计时器 Fl_Timeout* clock_timer; Fl_Timeout* countdown_timer; // 时钟和倒计时的文本显示 Fl_Output* clock_output; Fl_Output* countdown_output; // 倒计时的按钮 Fl_Button* start_button; // 时钟和倒计时的时间结构体 struct tm clock_time; struct tm countdown_time; int main(int argc, char** argv) { // 初始化 FLTK 库 Fl::scheme("gtk+"); Fl::set_font(FL_HELVETICA_BOLD, "Arial"); // 创建窗口 Fl_Window* window = new Fl_Window(WINDOW_WIDTH, WINDOW_HEIGHT, "数字时钟"); // 创建时钟的文本显示 clock_output = new Fl_Output(CLOCK_X, CLOCK_Y, CLOCK_WIDTH, CLOCK_HEIGHT, ""); clock_output->align(FL_ALIGN_CENTER | FL_ALIGN_INSIDE); clock_output->textsize(20); // 创建倒计时的文本显示 countdown_output = new Fl_Output(COUNTDOWN_X, COUNTDOWN_Y, COUNTDOWN_WIDTH, COUNTDOWN_HEIGHT, ""); countdown_output->align(FL_ALIGN_CENTER | FL_ALIGN_INSIDE); countdown_output->textsize(20); // 创建开始倒计时的按钮 start_button = new Fl_Button(START_BUTTON_X, START_BUTTON_Y, START_BUTTON_WIDTH, START_BUTTON_HEIGHT, "开始"); start_button->callback(countdown_callback); // 显示窗口 window->end(); window->show(argc, argv); // 开始时钟计时clock_timer = Fl::add_timeout(0.0, clock_callback, NULL); // 进入 FLTK 主循环 return Fl::run(); } void clock_callback(void* data) { // 获取当前时间 time_t current_time = time(NULL); localtime_r(&current_time, &clock_time); // 更新时钟的文本显示 char clock_text[9]; snprintf(clock_text, 9, "%02d:%02d:%02d", clock_time.tm_hour, clock_time.tm_min, clock_time.tm_sec); clock_output->value(clock_text); // 继续时钟计时clock_timer = Fl::add_timeout(1.0, clock_callback, NULL); } void countdown_callback(void* data) { // 禁用倒计时的按钮 start_button->deactivate(); // 设置倒计时的时间 time_t current_time = time(NULL) + COUNTDOWN_SECONDS; localtime_r(&current_time, &countdown_time); // 更新倒计时的文本显示 char countdown_text[9]; snprintf(countdown_text, 9, "%02d:%02d:%02d", countdown_time.tm_hour, countdown_time.tm_min, countdown_time.tm_sec); countdown_output->value(countdown_text); // 开始倒计时计时器 countdown_timer = Fl::add_timeout(1.0, [](void* data){ // 获取当前时间 time_t current_time = time(NULL); localtime_r(&current_time, &countdown_time); // 更新倒计时的文本显示 char countdown_text[9]; snprintf(countdown_text, 9, "%02d:%02d:%02d", countdown_time.tm_hour, countdown_time.tm_min, countdown_time.tm_sec); countdown_output->value(countdown_text); // 判断是否倒计时结束 if (current_time >= (time_t)(countdown_time.tm_year + 1900) * 31536000 + countdown_time.tm_yday * 86400 + countdown_time.tm_hour * 3600 + countdown_time.tm_min * 60 + countdown_time.tm_sec) { // 停止倒计时计时器 countdown_timer->stop(); // 更新倒计时的文本显示 countdown_output->value("00:00:00"); // 启用倒计时的按钮 start_button->activate(); } }, NULL); } ``` 在这个示例代码中,我们首先使用 FLTK 库创建了一个窗口,并在窗口中创建了时钟和倒计时的文本显示以及倒计时的按钮。然后,我们使用 FLTK 库的计时器功能,分别实现了时钟和倒计时计时器,并在时钟和倒计时计时器回调函数中更新了时钟和倒计时的文本显示。最后,我们在倒计时的按钮回调函数中实现了倒计时的功能,并在倒计时计时器回调函数中更新了倒计时的文本显示,并在倒计时结束后重新启用了倒计时的按钮。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值