//////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////// // Java Clock Applet / I-ichirow Suzuki // import java.applet.Applet; import java.awt.*; import java.util.Date; //-------------------------------------------------------------------------------------------------- public class JClock extends Applet implements Runnable { Thread thread; Image imgDoubleBuffer; Image imgClock; Graphics grphDoubleBuffer; boolean flagHour; boolean flagDate; boolean flagMonth; boolean flagDay; Date oldDate; int nDiffDate; int nDiffMonth; int nDiffDay; //------------------------------------------------- public JClock() { } //------------------------------------------------- public void init() { String as[] = { "S", "M", "T", "W", "T", "F", "S" }; int k13 = size().width / 2; int l13 = size().height / 2; imgDoubleBuffer = createImage(size().width, size().height); grphDoubleBuffer = imgDoubleBuffer.getGraphics(); imgClock = createImage(size().width, size().height); Graphics g = imgClock.getGraphics(); g.setFont(new Font(g.getFont().getName(), 0, 12)); g.setColor(new Color(183, 183, 183)); g.fillRect(0, 0, size().width, size().height); g.setColor(new Color(73, 73, 73)); g.drawOval(0, 0, size().width - 2, size().height - 2); g.drawString("JAVA", (size().width / 2 - g.getFontMetrics().stringWidth(String.valueOf("JAVA")) / 2) + 3, 36); g.setColor(new Color(255, 255, 255)); g.drawString("JAVA", (size().width / 2 - g.getFontMetrics().stringWidth(String.valueOf("JAVA")) / 2) + 2, 35); g.drawOval(2, 2, size().width - 2, size().height - 2); g.translate(size().width / 2, size().height / 2); g.setColor(new Color(73, 73, 73)); int i14 = g.getFontMetrics().getHeight(); for(int i = 1; i <= 6; i++) { int j3 = (new Double(Math.cos((3.1415926535897931D * (double)i) / 9D - 1.5707963267948966D) * (double)(k13 - 15))).intValue(); int j7 = (new Double(Math.sin((3.1415926535897931D * (double)i) / 9D - 1.5707963267948966D) * (double)(l13 - 15))).intValue(); int j11 = g.getFontMetrics().stringWidth(String.valueOf(i)); g.drawString(String.valueOf(i), (j3 - j11 / 2) + 1, j7 + i14 / 2 + 1); } for(int j = 6; j <= 12; j++) { int k3 = (new Double(Math.cos((3.1415926535897931D * (double)j) / 9D + 0.52359877559829882D) * (double)(k13 - 15))).intValue(); int k7 = (new Double(Math.sin((3.1415926535897931D * (double)j) / 9D + 0.52359877559829882D) * (double)(l13 - 15))).intValue(); int k11 = g.getFontMetrics().stringWidth(String.valueOf(j)); g.drawString(String.valueOf(j), (k3 - k11 / 2) + 1, k7 + i14 / 2 + 1); } for(int k = 0; k < 12; k++) if(k != 6) { int l3 = (new Double(Math.cos((3.1415926535897931D * (double)k) / 6D - 1.5707963267948966D) * (double)(k13 - 7))).intValue(); int l7 = (new Double(Math.sin((3.1415926535897931D * (double)k) / 6D - 1.5707963267948966D) * (double)(l13 - 7))).intValue(); g.drawOval(l3 - 1, l7 - 1, 1, 1); } g.setColor(new Color(255, 255, 255)); for(int l = 1; l <= 6; l++) { int i4 = (new Double(Math.cos((3.1415926535897931D * (double)l) / 9D - 1.5707963267948966D) * (double)(k13 - 15))).intValue(); int i8 = (new Double(Math.sin((3.1415926535897931D * (double)l) / 9D - 1.5707963267948966D) * (double)(l13 - 15))).intValue(); int l11 = g.getFontMetrics().stringWidth(String.valueOf(l)); g.drawString(String.valueOf(l), i4 - l11 / 2 - 1, (i8 + i14 / 2) - 1); } for(int i1 = 6; i1 <= 12; i1++) { int j4 = (new Double(Math.cos((3.1415926535897931D * (double)i1) / 9D + 0.52359877559829882D) * (double)(k13 - 15))).intValue(); int j8 = (new Double(Math.sin((3.1415926535897931D * (double)i1) / 9D + 0.52359877559829882D) * (double)(l13 - 15))).intValue(); int i12 = g.getFontMetrics().stringWidth(String.valueOf(i1)); g.drawString(String.valueOf(i1), j4 - i12 / 2 - 1, (j8 + i14 / 2) - 1); } for(int j1 = 0; j1 < 12; j1++) if(j1 != 6) { int k4 = (new Double(Math.cos((3.1415926535897931D * (double)j1) / 6D - 1.5707963267948966D) * (double)(k13 - 7))).intValue(); int k8 = (new Double(Math.sin((3.1415926535897931D * (double)j1) / 6D - 1.5707963267948966D) * (double)(l13 - 7))).intValue(); g.drawOval(k4, k8, 1, 1); } g.setColor(new Color(153, 153, 153)); for(int k1 = 1; k1 <= 6; k1++) { int l4 = (new Double(Math.cos((3.1415926535897931D * (double)k1) / 9D - 1.5707963267948966D) * (double)(k13 - 15))).intValue(); int l8 = (new Double(Math.sin((3.1415926535897931D * (double)k1) / 9D - 1.5707963267948966D) * (double)(l13 - 15))).intValue(); int j12 = g.getFontMetrics().stringWidth(String.valueOf(k1)); g.drawString(String.valueOf(k1), l4 - j12 / 2, l8 + i14 / 2); } for(int l1 = 6; l1 <= 12; l1++) { int i5 = (new Double(Math.cos((3.1415926535897931D * (double)l1) / 9D + 0.52359877559829882D) * (double)(k13 - 15))).intValue(); int i9 = (new Double(Math.sin((3.1415926535897931D * (double)l1) / 9D + 0.52359877559829882D) * (double)(l13 - 15))).intValue(); int k12 = g.getFontMetrics().stringWidth(String.valueOf(l1)); g.drawString(String.valueOf(l1), i5 - k12 / 2, i9 + i14 / 2); } for(int i2 = 0; i2 < 12; i2++) if(i2 != 6) { int j5 = (new Double(Math.cos((3.1415926535897931D * (double)i2) / 6D - 1.5707963267948966D) * (double)(k13 - 7))).intValue(); int j9 = (new Double(Math.sin((3.1415926535897931D * (double)i2) / 6D - 1.5707963267948966D) * (double)(l13 - 7))).intValue(); g.drawLine(j5, j9, j5, j9); } for(int j2 = 0; j2 < 60; j2++) if(j2 % 5 != 0 && (j2 < 25 || j2 > 35)) { int k5 = (new Double(Math.cos((3.1415926535897931D * (double)j2) / 30D - 1.5707963267948966D) * (double)(size().width / 2 - 7))).intValue(); int k9 = (new Double(Math.sin((3.1415926535897931D * (double)j2) / 30D - 1.5707963267948966D) * (double)(size().height / 2 - 7))).intValue(); g.setColor(new Color(73, 73, 73)); g.drawLine(k5 - 1, k9 - 1, k5 - 1, k9 - 1); g.setColor(new Color(255, 255, 255)); g.drawLine(k5, k9, k5, k9); } g.translate(0, size().height / 4); g.setColor(new Color(73, 73, 73)); g.drawOval(-(size().width / 4 - 5), -(size().height / 4 - 5), size().width / 2 - 10, size().height / 2 - 10); g.setColor(new Color(255, 255, 255)); g.drawOval(-(size().width / 4 - 5) + 1, -(size().height / 4 - 5) + 1, size().width / 2 - 10, size().height / 2 - 10); for(int k2 = 1; k2 <= 31; k2++) if(k2 % 10 == 1 && k2 != 1) { g.setColor(new Color(73, 73, 73)); int l5 = (new Double(Math.cos((3.1415926535897931D * (double)k2 * 2D) / 31D - 1.5707963267948966D) * (double)(k13 / 2 - 15))).intValue(); int l9 = (new Double(Math.sin((3.1415926535897931D * (double)k2 * 2D) / 31D - 1.5707963267948966D) * (double)(l13 / 2 - 15))).intValue(); int l12 = g.getFontMetrics().stringWidth(String.valueOf(k2)); g.drawString(String.valueOf(k2), (l5 - l12 / 2) + 1, l9 + i14 / 2 + 1); g.setColor(new Color(255, 255, 255)); g.drawString(String.valueOf(k2), l5 - l12 / 2, l9 + i14 / 2); } else { g.setColor(new Color(73, 73, 73)); int i6 = (new Double(Math.cos((3.1415926535897931D * (double)k2 * 2D) / 31D - 1.5707963267948966D) * (double)(k13 / 2 - 8))).intValue(); int i10 = (new Double(Math.sin((3.1415926535897931D * (double)k2 * 2D) / 31D - 1.5707963267948966D) * (double)(l13 / 2 - 8))).intValue(); g.drawLine(i6, i10, i6, i10); g.setColor(new Color(255, 255, 255)); g.drawLine(i6 + 1, i10 + 1, i6 + 1, i10 + 1); } g.translate(-size().width / 2, (-size().height * 3) / 4); g.translate((new Double(Math.cos(-0.52359877559829882D) * (double)(size().width / 6))).intValue() + size().width / 2 + 5, (new Double(Math.sin(-0.52359877559829882D) * (double)(size().height / 6))).intValue() + size().height / 2 + 5); g.setColor(new Color(73, 73, 73)); g.drawOval(-size().width / 8 - 1, -size().height / 8 - 1, size().width / 4, size().height / 4); g.setColor(new Color(255, 255, 255)); g.drawOval(-size().width / 8, -size().height / 8, size().width / 4, size().height / 4); for(int l2 = 1; l2 <= 12; l2++) if(l2 % 3 == 0) { int j6 = (new Double(Math.cos((3.1415926535897931D * (double)l2) / 6D - 1.5707963267948966D) * (double)(size().width / 8 - 7))).intValue(); int j10 = (new Double(Math.sin((3.1415926535897931D * (double)l2) / 6D - 1.5707963267948966D) * (double)(size().height / 8 - 7))).intValue(); int i13 = g.getFontMetrics().stringWidth(String.valueOf(l2)); g.setColor(new Color(73, 73, 73)); g.drawString(String.valueOf(l2), (j6 - i13 / 2) + 1, j10 + i14 / 2 + 1); g.setColor(new Color(255, 255, 255)); g.drawString(String.valueOf(l2), j6 - i13 / 2, j10 + i14 / 2); } else { int k6 = (new Double(Math.cos((3.1415926535897931D * (double)l2 * 2D) / 7D - 1.5707963267948966D) * (double)(size().width / 8 - 3))).intValue(); int k10 = (new Double(Math.sin((3.1415926535897931D * (double)l2 * 2D) / 7D - 1.5707963267948966D) * (double)(size().height / 8 - 3))).intValue(); g.setColor(new Color(73, 73, 73)); g.drawLine(k6 - 1, k10 - 1, k6 - 1, k10 - 1); g.setColor(new Color(255, 255, 255)); g.drawLine(k6, k10, k6, k10); } g.translate(-size().width / 3 - 4, 0); g.setColor(new Color(73, 73, 73)); g.drawOval(-size().width / 8 - 1, -size().height / 8 - 1, size().width / 4, size().height / 4); g.setColor(new Color(255, 255, 255)); g.drawOval(-size().width / 8, -size().height / 8, size().width / 4, size().height / 4); for(int i3 = 0; i3 < 7; i3++) if(i3 == 0 || i3 == 2 || i3 == 5) { int l6 = (new Double(Math.cos((3.1415926535897931D * (double)i3 * 2D) / 7D - 1.5707963267948966D) * (double)(size().width / 8 - 7))).intValue(); int l10 = (new Double(Math.sin((3.1415926535897931D * (double)i3 * 2D) / 7D - 1.5707963267948966D) * (double)(size().height / 8 - 7))).intValue(); int j13 = g.getFontMetrics().stringWidth(as[i3]); g.setColor(new Color(73, 73, 73)); g.drawString(as[i3], (l6 - j13 / 2) + 1, l10 + i14 / 2 + 1); g.setColor(new Color(255, 255, 255)); g.drawString(as[i3], l6 - j13 / 2, l10 + i14 / 2); } else { int i7 = (new Double(Math.cos((3.1415926535897931D * (double)i3 * 2D) / 7D - 1.5707963267948966D) * (double)(size().width / 8 - 3))).intValue(); int i11 = (new Double(Math.sin((3.1415926535897931D * (double)i3 * 2D) / 7D - 1.5707963267948966D) * (double)(size().height / 8 - 3))).intValue(); g.setColor(new Color(73, 73, 73)); g.drawLine(i7 - 1, i11 - 1, i7 - 1, i11 - 1); g.setColor(new Color(255, 255, 255)); g.drawLine(i7, i11, i7, i11); } oldDate = new Date(); flagHour = false; flagDate = false; flagMonth = false; } //------------------------------------------------- public void start() { if(thread == null) { thread = new Thread(this); thread.start(); } } //------------------------------------------------- public void stop() { if(thread != null) { thread.stop(); thread = null; } } //------------------------------------------------- public void run() { do { try { Thread.sleep(50L); } catch(InterruptedException _ex) { return; } repaint(); } while(true); } //------------------------------------------------- public void update(Graphics g) { paint(g); } //------------------------------------------------- public void paint(Graphics g) { Date date = new Date(); int i = size().width / 2; int j = i + 2; int k = size().height / 2; int l = k + 2; double d = (new Long(date.getTime() % 1000L)).doubleValue(); double d1 = (new Integer(date.getSeconds())).doubleValue(); double d2 = (new Integer(date.getMinutes())).doubleValue(); double d3 = (new Integer(date.getHours())).doubleValue(); grphDoubleBuffer.drawImage(imgClock, 0, 0, this); grphDoubleBuffer.setColor(new Color(0, 0, 0)); grphDoubleBuffer.fillOval(size().width / 2 - 4, (size().height * 3) / 4 - 4, 8, 8); grphDoubleBuffer.fillOval((new Double((Math.cos(-0.52359877559829882D) * (double)size().width) / 6D)).intValue() + size().width / 2 + 3, (new Double(Math.sin(-0.52359877559829882D) * (double)(size().height / 6))).intValue() + size().height / 2 + 3, 6, 6); grphDoubleBuffer.fillOval(((new Double((Math.cos(-0.52359877559829882D) * (double)size().width) / 6D)).intValue() + size().width / 2) - size().width / 3 - 1, (new Double(Math.sin(-0.52359877559829882D) * (double)(size().height / 6))).intValue() + size().height / 2 + 3, 6, 6); grphDoubleBuffer.setColor(new Color(153, 153, 153)); grphDoubleBuffer.fillOval(size().width / 2 - 2, (size().height * 3) / 4 - 2, 4, 4); grphDoubleBuffer.fillOval((new Double((Math.cos(-0.52359877559829882D) * (double)size().width) / 6D)).intValue() + size().width / 2 + 4, (new Double(Math.sin(-0.52359877559829882D) * (double)(size().height / 6))).intValue() + size().height / 2 + 4, 3, 3); grphDoubleBuffer.fillOval(((new Double((Math.cos(-0.52359877559829882D) * (double)size().width) / 6D)).intValue() + size().width / 2) - size().width / 3, (new Double(Math.sin(-0.52359877559829882D) * (double)(size().height / 6))).intValue() + size().height / 2 + 4, 3, 3); double d4 = (3.1415926535897931D * (d1 + d / 1000D) * 6D) / 180D - 1.5707963267948966D; int i1 = (new Double(Math.cos(d4) * (double)(size().width / 2 - 5))).intValue(); int j3 = (new Double(Math.sin(d4) * (double)(size().height / 2 - 5))).intValue(); int k5 = (new Double(Math.cos(3.1415926535897931D + d4) * 10D)).intValue(); int j6 = (new Double(Math.sin(3.1415926535897931D + d4) * 10D)).intValue(); grphDoubleBuffer.setColor(new Color(123, 123, 123)); grphDoubleBuffer.drawLine(j, l, i1 + j, j3 + l); grphDoubleBuffer.drawLine(j, l, k5 + j, j6 + l); grphDoubleBuffer.setColor(new Color(0, 0, 0)); grphDoubleBuffer.drawLine(i, k, i1 + i, j3 + k); grphDoubleBuffer.drawLine(i, k, k5 + i, j6 + k); d4 = (3.1415926535897931D * (d2 + d1 / 60D + d / 60000D) * 6D) / 180D - 1.5707963267948966D; double d12 = Math.cos(d4); double d15 = Math.sin(d4); i1 = (new Double(d12 * (double)(i - 11))).intValue(); j3 = (new Double(d15 * (double)(k - 11))).intValue(); k5 = (new Double(d12 * (double)(i - 7))).intValue(); j6 = (new Double(d15 * (double)(k - 7))).intValue(); int i7 = (new Double(d12 * (double)(i - 5))).intValue(); int l7 = (new Double(d15 * (double)(k - 5))).intValue(); int k8 = (new Double(d12 * (double)(i - 9))).intValue(); int j9 = (new Double(d15 * (double)(k - 9))).intValue(); grphDoubleBuffer.setColor(new Color(123, 123, 123)); grphDoubleBuffer.drawLine(j, l, i1 + j, j3 + l); grphDoubleBuffer.drawLine(k5 + j, j6 + l, i7 + j, l7 + l); grphDoubleBuffer.drawOval((k8 + j) - 2, (j9 + j) - 2, 4, 4); grphDoubleBuffer.setColor(new Color(0, 0, 0)); grphDoubleBuffer.drawLine(i, k, i1 + i, j3 + k); grphDoubleBuffer.drawLine(k5 + i, j6 + k, i7 + i, l7 + k); grphDoubleBuffer.drawOval((k8 + i) - 2, (j9 + i) - 2, 4, 4); if(d3 > 12D) d3 -= 12D; if(!flagHour) { if(date.getHours() != oldDate.getHours() && d3 == 6D) flagHour = true; if(d3 < 6D || flagHour) d4 = (3.1415926535897931D * (d3 + d2 / 60D + d1 / 3600D + d / 3600000D) * 20D) / 180D - 1.5707963267948966D; else if(d3 >= 6D) d4 = ((3.1415926535897931D * (d3 + d2 / 60D + d1 / 3600D + d / 3600000D) * 20D) / 180D - 1.5707963267948966D) + 2.0943951023931953D; double d13 = Math.cos(d4); double d16 = Math.sin(d4); int j1 = (new Double(d13 * (double)(i - 31))).intValue(); int k3 = (new Double(d16 * (double)(k - 31))).intValue(); int l5 = (new Double(d13 * (double)(i - 27))).intValue(); int k6 = (new Double(d16 * (double)(k - 27))).intValue(); int j7 = (new Double(d13 * (double)(i - 25))).intValue(); int i8 = (new Double(d16 * (double)(k - 25))).intValue(); int l8 = (new Double(d13 * (double)(i - 29))).intValue(); int k9 = (new Double(d16 * (double)(k - 29))).intValue(); grphDoubleBuffer.setColor(new Color(123, 123, 123)); grphDoubleBuffer.drawLine(j, l, j1 + j, k3 + l); grphDoubleBuffer.drawLine(l5 + j, k6 + l, j7 + j, i8 + l); grphDoubleBuffer.drawOval((l8 + j) - 2, (k9 + j) - 2, 4, 4); grphDoubleBuffer.setColor(new Color(0, 0, 0)); grphDoubleBuffer.drawLine(i, k, j1 + i, k3 + k); grphDoubleBuffer.drawLine(l5 + i, k6 + k, j7 + i, i8 + k); grphDoubleBuffer.drawOval((l8 + i) - 2, (k9 + i) - 2, 4, 4); } else if(d1 > 12D) { flagHour = false; } else { double d5 = (3.1415926535897931D * (6D - (d1 + d / 1000D)) * 20D) / 180D - 1.5707963267948966D; double d14 = Math.cos(d5); double d17 = Math.sin(d5); int k1 = (new Double(d14 * (double)(i - 31))).intValue(); int l3 = (new Double(d17 * (double)(k - 31))).intValue(); int i6 = (new Double(d14 * (double)(i - 27))).intValue(); int l6 = (new Double(d17 * (double)(k - 27))).intValue(); int k7 = (new Double(d14 * (double)(i - 25))).intValue(); int j8 = (new Double(d17 * (double)(k - 25))).intValue(); int i9 = (new Double(d14 * (double)(i - 29))).intValue(); int l9 = (new Double(d17 * (double)(k - 29))).intValue(); grphDoubleBuffer.setColor(new Color(123, 123, 123)); grphDoubleBuffer.drawLine(j, l, k1 + j, l3 + l); grphDoubleBuffer.drawLine(i6 + j, l6 + l, k7 + j, j8 + l); grphDoubleBuffer.drawOval((i9 + j) - 2, (l9 + j) - 2, 4, 4); grphDoubleBuffer.setColor(new Color(0, 0, 0)); grphDoubleBuffer.drawLine(i, k, k1 + i, l3 + k); grphDoubleBuffer.drawLine(i6 + i, l6 + k, k7 + i, j8 + k); grphDoubleBuffer.drawOval((i9 + i) - 2, (l9 + i) - 2, 4, 4); if(d1 >= 12D) flagHour = false; } i = size().width / 2; k = (size().height * 3) / 4; j = size().width / 2 + 2; l = (size().height * 3) / 4 + 2; if(date.getDate() != oldDate.getDate() && !flagDate && !flagMonth && !flagDay) { if(date.getMonth() != oldDate.getMonth()) { nDiffDate = 32 - oldDate.getDate(); nDiffMonth = 1; flagMonth = true; } else { nDiffDate = date.getDate() - oldDate.getDate() - 1; } nDiffDay = 1; flagDate = true; flagDay = true; } if(!flagDate) { double d6 = (3.1415926535897931D * (double)date.getDate() * 2D) / 31D - 1.5707963267948966D; int l1 = (new Double(Math.cos(d6) * (double)(size().width / 4 - 7))).intValue(); int i4 = (new Double(Math.sin(d6) * (double)(size().height / 4 - 7))).intValue(); grphDoubleBuffer.setColor(new Color(123, 123, 123)); grphDoubleBuffer.drawLine(j, l, l1 + j, i4 + l); grphDoubleBuffer.setColor(new Color(0, 0, 0)); grphDoubleBuffer.drawLine(i, k, l1 + i, i4 + k); if(!flagMonth && !flagDay) oldDate = date; nDiffDate = 0; } else { double d7 = (3.1415926535897931D * ((double)oldDate.getDate() + (d1 + d / 1000D)) * 2D) / 31D - 1.5707963267948966D; int i2 = (new Double(Math.cos(d7) * (double)(size().width / 4 - 7))).intValue(); int j4 = (new Double(Math.sin(d7) * (double)(size().height / 4 - 7))).intValue(); grphDoubleBuffer.setColor(new Color(123, 123, 123)); grphDoubleBuffer.drawLine(j, l, i2 + j, j4 + l); grphDoubleBuffer.setColor(new Color(0, 0, 0)); grphDoubleBuffer.drawLine(i, k, i2 + i, j4 + k); if((double)nDiffDate <= d1) { flagDate = false; if(!flagMonth && !flagDay) oldDate = date; nDiffDate = 0; } } i = (new Double((Math.cos(-0.52359877559829882D) * (double)size().width) / 6D)).intValue() + size().width / 2 + 5; k = (new Double(Math.sin(-0.52359877559829882D) * (double)(size().height / 6))).intValue() + size().height / 2 + 5; j = i + 1; l = k + 1; if(!flagMonth) { double d8 = (3.1415926535897931D * (double)(date.getMonth() + 1)) / 6D - 1.5707963267948966D; int j2 = (new Double(Math.cos(d8) * (double)(size().width / 8 - 3))).intValue(); int k4 = (new Double(Math.sin(d8) * (double)(size().height / 8 - 3))).intValue(); grphDoubleBuffer.setColor(new Color(123, 123, 123)); grphDoubleBuffer.drawLine(j, l, j2 + j, k4 + l); grphDoubleBuffer.setColor(new Color(0, 0, 0)); grphDoubleBuffer.drawLine(i, k, j2 + i, k4 + k); if(!flagDate && !flagDay) oldDate = date; nDiffMonth = 0; } else { double d9 = (3.1415926535897931D * ((double)(oldDate.getMonth() + 1) + (d1 + d / 1000D))) / 6D - 1.5707963267948966D; int k2 = (new Double(Math.cos(d9) * (double)(size().width / 8 - 3))).intValue(); int l4 = (new Double(Math.sin(d9) * (double)(size().height / 8 - 3))).intValue(); grphDoubleBuffer.setColor(new Color(123, 123, 123)); grphDoubleBuffer.drawLine(j, l, k2 + j, l4 + l); grphDoubleBuffer.setColor(new Color(0, 0, 0)); grphDoubleBuffer.drawLine(i, k, k2 + i, l4 + k); if((double)nDiffMonth <= d1) { flagMonth = false; if(!flagDate && !flagDay) oldDate = date; nDiffMonth = 0; } } i = (((new Double((Math.cos(-0.52359877559829882D) * (double)size().width) / 6D)).intValue() + size().width / 2) - size().width / 3) + 1; k = (new Double(Math.sin(-0.52359877559829882D) * (double)(size().height / 6))).intValue() + size().height / 2 + 5; j = i + 1; l = k + 1; if(!flagDay) { double d10 = (3.1415926535897931D * (double)date.getDay() * 2D) / 7D - 1.5707963267948966D; int l2 = (new Double(Math.cos(d10) * (double)(size().width / 8 - 3))).intValue(); int i5 = (new Double(Math.sin(d10) * (double)(size().height / 8 - 3))).intValue(); grphDoubleBuffer.setColor(new Color(123, 123, 123)); grphDoubleBuffer.drawLine(j, l, l2 + j, i5 + l); grphDoubleBuffer.setColor(new Color(0, 0, 0)); grphDoubleBuffer.drawLine(i, k, l2 + i, i5 + k); if(!flagDate && !flagMonth) oldDate = date; nDiffDay = 0; } else { double d11 = (3.1415926535897931D * ((double)oldDate.getDay() + (d1 + d / 1000D)) * 2D) / 7D - 1.5707963267948966D; int i3 = (new Double(Math.cos(d11) * (double)(size().width / 8 - 3))).intValue(); int j5 = (new Double(Math.sin(d11) * (double)(size().height / 8 - 3))).intValue(); grphDoubleBuffer.setColor(new Color(123, 123, 123)); grphDoubleBuffer.drawLine(j, l, i3 + j, j5 + l); grphDoubleBuffer.setColor(new Color(0, 0, 0)); grphDoubleBuffer.drawLine(i, k, i3 + i, j5 + k); if((double)nDiffDay <= d1) { flagDay = false; if(!flagDate && !flagMonth) oldDate = date; nDiffDay = 0; } } grphDoubleBuffer.setColor(new Color(0, 0, 0)); grphDoubleBuffer.fillOval(size().width / 2 - 4, size().height / 2 - 4, 8, 8); grphDoubleBuffer.setColor(new Color(153, 153, 153)); grphDoubleBuffer.fillOval(size().width / 2 - 2, size().height / 2 - 2, 4, 4); g.drawImage(imgDoubleBuffer, 0, 0, this); } }