📄 clock2.java
字号:
import java.applet.Applet;
import java.awt.*;
import java.text.*;
import java.util.*;
public class Clock2 extends Applet implements Runnable
{
Thread timer ;
Color fgColor, bgColor ;
Font showFont ;
String lastDate, dateFormat ;
String[] weekDays = new String[7],
months = new String[12] ;
public Clock2()
{
lastDate = "" ;
}
int getParameter(String s1, int s2)
{
String s = getParameter(s1) ;
return (s != null) ? Integer.parseInt(s) : s2 ;
}
String getParameter(String s1, String s2)
{
String s = getParameter(s1) ;
return (s != null) ? s : s2 ;
}
Color getParameter(String s1, Color s2)
{
String s = getParameter(s1);
return (s != null) ?
new Color(Integer.parseInt(s, 16)) : s2 ;
}
Font getParameter(String fn, String fs, String sz, Font s2)
{
int fontStyle = Font.PLAIN ;
fs = getParameter(fs, "PLAIN") ;
if (fs.toUpperCase().indexOf("BOLD") != -1)
fontStyle |= Font.BOLD ;
if (fs.toUpperCase().indexOf("ITALIC") != -1)
fontStyle |= Font.ITALIC ;
return ((fn = getParameter(fn)) != null) ?
new Font(fn, fontStyle, getParameter(sz, s2.getSize())) :
new Font(s2.getName(), fontStyle,
getParameter(sz, s2.getSize())) ;
}
public void init()
{
int i = 12;
byte byte0 = 0;
bgColor = getParameter("BGColor", new Color(0xc0c0c0));
fgColor = getParameter("FGColor", Color.black);
setBackground(bgColor);
showFont = getParameter("Font","FontStyle","FontSize",
new Font("TimesRoman", Font.PLAIN, 12));
dateFormat = getParameter("dateFormat","%a, %B %e %T");
weekDays[0] = new String("Sunday");
weekDays[1] = new String("Monday");
weekDays[2] = new String("Tuesday");
weekDays[3] = new String("Wednesday");
weekDays[4] = new String("Thursday");
weekDays[5] = new String("Friday");
weekDays[6] = new String("Saturday");
months[0] = new String("January");
months[1] = new String("February");
months[2] = new String("March");
months[3] = new String("April");
months[4] = new String("May");
months[5] = new String("June");
months[6] = new String("July");
months[7] = new String("August");
months[8] = new String("September");
months[9] = new String("October");
months[10] = new String("November");
months[11] = new String("December");
}
private String padElement(int i, char c)
{
String s = "";
if(i < 10)
s = s.concat(String.valueOf(c));
s = s.concat(String.valueOf(i));
return s;
}
private String formatDate(String s, Date date)
{
String s1 = "";
int year = date.getYear();
int j = year + 1900;
int month = date.getMonth();
int l = date.getDate();
int i1 = date.getDay();
int j1 = date.getHours();
int k1 = date.getMinutes();
int l1 = date.getSeconds();
year = year <= 99 ? year : year - 100;
int i2 = j1 >= 13 ? j1 - 12 : j1;
for(int j2 = 0; j2 < s.length(); j2++)
if(s.charAt(j2) == '%')
{
j2++;
if(s.length() <= j2)
s1 = s1.concat("?");
else
switch(s.charAt(j2))
{
case 97: // 'a'
s1 =s1.concat(weekDays[i1].substring(0, 3));
break;
case 65: // 'A'
s1 =s1.concat(weekDays[i1]);
break;
case 98: // 'b'
case 104: // 'h'
s1=s1.concat(months[month].substring(0, 3));
break;
case 66: // 'B'
s1 = s1.concat(months[month]);
break;
case 99: // 'c'
s1 = s1.concat(date.toLocaleString());
break;
case 67: // 'C'
s1 = s1.concat(date.toString());
break;
case 100: // 'd'
s1 = s1.concat(padElement(l, '0'));
break;
case 68: // 'D'
s1 = s1.concat(padElement(month + 1, '0'));
s1 = s1.concat(String.valueOf('/'));
s1 = s1.concat(padElement(l, '0'));
s1 = s1.concat(String.valueOf('/'));
s1 = s1.concat(padElement(year, '0'));
break;
case 101: // 'e'
s1 = s1.concat(padElement(l, ' '));
break;
case 72: // 'H'
s1 = s1.concat(padElement(j1, '0'));
break;
case 73: // 'I'
s1 = s1.concat(padElement(i2, '0'));
break;
case 109: // 'm'
s1 = s1.concat(padElement(month + 1, '0'));
break;
case 77: // 'M'
s1 = s1.concat(padElement(k1, '0'));
break;
case 112: // 'p'
s1 = s1.concat(
String.valueOf(j1 >= 12 ? "PM" : "AM"));
break;
case 114: // 'r'
s1 = s1.concat(padElement(i2, '0'));
s1 = s1.concat(String.valueOf(':'));
s1 = s1.concat(padElement(k1, '0'));
s1 = s1.concat(String.valueOf(':'));
s1 = s1.concat(padElement(l1, '0'));
s1 = s1.concat(String.valueOf(' '));
s1 = s1.concat(
String.valueOf(j1 >= 12 ? "PM" : "AM"));
break;
case 82: // 'R'
s1 = s1.concat(padElement(j1, '0'));
s1 = s1.concat(String.valueOf(':'));
s1 = s1.concat(padElement(k1, '0'));
break;
case 83: // 'S'
s1 = s1.concat(padElement(l1, '0'));
break;
case 84: // 'T'
s1 = s1.concat(padElement(j1, '0'));
s1 = s1.concat(String.valueOf(':'));
s1 = s1.concat(padElement(k1, '0'));
s1 = s1.concat(String.valueOf(':'));
s1 = s1.concat(padElement(l1, '0'));
break;
case 119: // 'w'
s1 = s1.concat(String.valueOf(i1));
break;
case 121: // 'y'
s1 = s1.concat(padElement(year, '0'));
break;
case 89: // 'Y'
s1 = s1.concat(padElement(j, '0'));
break;
case 37: // '%'
s1 = s1.concat("%");
break;
default:
s1 = s1.concat("??");
break;
}
}
else
{
s1 = s1.concat(String.valueOf(s.charAt(j2)));
}
return s1;
}
public void paint(Graphics g)
{
g.setFont(showFont);
g.setColor(bgColor);
g.drawString(lastDate, 5, 20);
g.setColor(fgColor);
lastDate = formatDate(dateFormat, new Date()) ;
g.drawString(lastDate, 5, 20);
}
public void start()
{
if(timer == null)
{
timer = new Thread(this);
timer.start();
}
}
public void stop()
{
timer = null;
}
public void run()
{
while(timer != null)
{
try
{
Thread.sleep(100L);
}
catch(InterruptedException _ex) { }
repaint();
}
}
public void update(Graphics g)
{
paint(g);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -