📄 hms.java
字号:
package clock;
import java.awt.*;
import java.applet.*;
import java.util.*;
import java.net.*;
class Hms extends Date {
public Hms(double localOffset) { // 如果HTML文件中设置了时区,则把时间设为当地时区时间
super();
long tzOffset = getTimezoneOffset() * 60L * 1000L;
localOffset *= 3600000.0;
setTime(getTime() + tzOffset + (long) localOffset);
}
public Hms() { // 如果没有设置时区,则就使用当地的时间
super();
}
public double get_hours() // 时间换算,把如5:30这样的时间换算成5.5
{
return (double) super.getHours() + (double) getMinutes() / 60.0;
}
}
abstract class ClockHand // 抽象类,提供时针、分针、秒针类使用
{
protected int baseX[], baseY[];
protected int transX[], transY[];
protected int numberOfPoints;
public ClockHand(int originX, int originY, int length, int thickness,
int points) {
baseX = new int[points];
baseY = new int[points];
transX = new int[points];
transY = new int[points];
initiallizePoints(originX, originY, length, thickness);
numberOfPoints = points;
}
abstract protected void initiallizePoints(int originX, int originY,
int length, int thickness);
abstract public void draw(Color color, double angle, Graphics g);
protected void transform(double angle) // 通过角度计算出时针、分针、秒针的绘制位置
{
for (int i = 0; i < numberOfPoints; i++) {
transX[i] = (int) ((baseX[0] - baseX[i]) * Math.cos(angle)
- (baseY[0] - baseY[i]) * Math.sin(angle) + baseX[0]);
transY[i] = (int) ((baseX[0] - baseX[i]) * Math.sin(angle)
+ (baseY[0] - baseY[i]) * Math.cos(angle) + baseY[0]);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -