import java.text.DecimalFormat;
public class Exec {
public static void main(String[] args) {
Clock c1 = null;
try {
c1 = new Clock(18, 4, 14);
} catch (Exception e) {
e.printStackTrace();
c1 = new Clock();
}
System.out.println(c1.toString());
}
}
class Clock {
public Clock() {
this.hourse = 0;
this.minute = 0;
this.second = 0;
}
public Clock(int hourse, int minute, int second) {
setHourse(hourse);
setMinute(minute);
setSecond(second);
}
public int getHourse() {
return hourse;
}
public void setHourse(int hourse) {
if (hourse >= 0 && hourse <= 23)
this.hourse = hourse;
else
throw new ClockFormatException();
}
public int getMinute() {
return minute;
}
public void setMinute(int minute) {
if (minute >= 0 && minute <= 59)
this.minute = minute;
else
throw new ClockFormatException();
}
public int getSecond() {
return second;
}
public void setSecond(int second) {
if (second >= 0 && second <= 59)
this.second = second;
else
throw new ClockFormatException();
}
@Override
public String toString() {
DecimalFormat df = new DecimalFormat("00");
return (hourse < 12 ? "上午 " : "下午 ") + df.format(hourse) + ":"
+ df.format(minute) + ":" + df.format(second);
}
private int hourse;
private int minute;
private int second;
}
class ClockFormatException extends RuntimeException {
private static final long serialVersionUID = -6387238486450310840L;
public ClockFormatException() {
super("时钟转换出错,时钟将被初始化。");
}
public ClockFormatException(final String s) {
super(s);
}
}
分享到:
相关推荐
Android的自定义时钟通常需要自定义一个View类,继承自Android的View或ViewGroup。在这个类中,你需要重写onDraw()方法来绘制时钟的外观。可以使用Canvas对象进行绘图,包括画圆、线条、文字等。同时,你可能还需要...
【VB源码-系统相关】中的“带指针的定时器时钟”是一个基于Visual Basic(VB)开发的程序,它模拟了一个具有实际钟表功能的界面,可以实时显示当前的时间、日期以及上午/下午状态。这个项目对于学习VB编程,尤其是...
总之,"STM32F105_USB(带自定义协议)"项目涉及到了STM32F105微控制器的USB设备功能开发,特别是利用HID类来实现64字节长度的数据传输,并结合自定义协议以满足特定应用的需求。开发者需要深入理解USB协议、HID规范...
时钟Widget是Android系统中的一个核心组件,开发者可以通过自定义实现来提供独特的功能和设计。创建这样的Widget主要涉及以下几个关键知识点: 1. **AppWidgetProvider**: 这是所有Android桌面插件的基础类,开发者...
这个项目的核心是利用Java语言编写一个能够显示时间、播放音乐,并允许用户自定义功能的时钟应用。下面将详细阐述这个项目涉及的关键知识点。 1. **Java基础**:首先,你需要对Java编程语言有扎实的理解,包括基本...
【标题】:“鱼带透明时钟屏保,很难找了,带注册码,完美版”指的是一个罕见且完整的屏幕保护程序,它将您的电脑屏幕转换为一个动态的、带有透明时钟效果的水族箱场景。这个屏保软件设计独特,能够以透明度调整功能...
在MFC中,`CTrayIcon`类通常用于管理任务栏通知区的图标,但在这里,描述中提到的是一个“包含较完整功能”的自定义类,可能包含了更多的定制化功能,比如定时更新、右键菜单等。 程序的核心部分将是更新时间显示的...
考虑到用户可能需要自定义时钟外观,可以添加设置界面,允许用户更改指针颜色、背景颜色、时钟大小等。 8. **异常处理**: 对于可能出现的异常,如绘图资源无法释放,需要适当的错误处理机制,确保程序的稳定运行...
可以使用`javafx.scene.control.Label`或者自定义控件来显示时间,并结合`Timeline`或`ScheduledService`来定期更新时间显示。 4. **计时器和闹钟功能**: 更高级的时钟可能包含计时器和闹钟功能。计时器可以用...
6. **面向对象编程**:Java是面向对象的语言,时钟程序可能包含多个类,如`Clock`类表示时钟,`TimeDisplay`类负责显示时间,以及可能的`Config`类用于保存和读取用户配置。每个类都有其特定的功能,体现了面向对象...
5. **自定义控件**:虽然VB没有内置的指针式时钟控件,但开发者可以通过继承自`UserControl`类创建自己的控件。这样可以封装时钟的逻辑和绘图,使其在项目中可重用,并且可以调整其外观和行为。 6. **性能优化**:...
你可以通过重写`paintComponent()`方法来实现自定义绘图,如画出时钟的数字、指针等。 5. **线程处理**:为了让时钟持续更新时间,需要创建一个单独的线程来负责刷新界面。这通常通过继承`javax.swing.Timer`类或...
C++是一种通用、面向对象的编程语言,它继承了C语言的效率,并引入了类和模板等高级特性,使得编写复杂程序更加方便。在创建电子时钟项目时,C++的这些特性将发挥关键作用。 **半透明效果**: 在C++中实现半透明...
在这个项目中,`dgclock` 可能是一个自定义的类,用于创建具有实时更新时间功能的用户界面组件。下面我们将深入探讨C#类以及如何利用它来构建数字时钟应用。 在C#中,类是一种模板,用于创建对象。类可以包含字段...
时钟程序可能会有一个Label控件用来显示时间,或者一个自定义的控件来模拟时钟的外观。 4. **System.Timers.Timer类**:这是一个非常常见的用于实现定时任务的类,它会周期性地触发事件。在时钟程序中,我们可以...
总的来说,"时钟和简单银行系统"项目涵盖了Java的基础知识,如面向对象编程、类设计、异常处理、线程安全以及输入/输出处理,这些都是成为一名合格Java开发者所必备的技能。通过这个项目,初学者不仅可以巩固编程...
9. **异常处理**:良好的代码会考虑异常处理,确保程序在遇到错误时能够优雅地退出,而不是突然崩溃。 10. **用户交互**:虽然这个例子主要关注时钟显示,但完整的程序可能还会包含一些用户交互元素,如按钮或菜单...
在自定义的时钟控件类中,我们需要覆盖`OnPaintBackground`方法,让它为空,然后在`OnPaint`方法中执行所有的绘制操作。这样做可以确保所有绘制都在后台缓冲区完成,然后再一次性显示到屏幕上,从而消除闪烁。 在...
5. **自定义绘图**: 指针式时钟可能需要我们利用Graphics类进行自定义绘图。通过Pen对象画出时针、分针和秒针,使用DrawLine或DrawArc方法,根据DateTime对象获取的角度计算并绘制指针的位置。 6. **事件驱动编程**...
4. **重载OnPaint**:在自定义控件的类中,重载`OnPaint`函数。在这个函数里,我们将使用GDI+绘制时钟。获取`CPaintDC`对象以获取画布,并创建一个`Graphics`对象以进行绘图。 5. **绘制时钟背景**:使用`...