📄 clock.java
字号:
package kfl;/*** A simple clock and calendar.*/public class Clock { private static int next; private static int s; private static int day; private static int year; private static boolean leap; private static int[] mtab; private static int[] buf;/* public static void main(String args[]) { Display.line1(); for (int i=0; i<20; ++i) Display.data(' '); Display.line2(); for (int i=0; i<20; ++i) Display.data(' '); Clock.init(); Timer.start(); for (;;) { if (Clock.loop()) { Display.line1(); disp02(year/100); disp02(year%100); Display.data('-'); disp02(getMonth()); Display.data('-'); disp02(getDay()); Display.data(' '); int i = s; disp02(i/3600); Display.data(':'); i %= 3600; disp02(i/60); Display.data(':'); disp02(i%60); } Timer.waitForNextInterval(); } } private static void disp02(int i) { Display.data('0'+(i/10)); Display.data('0'+(i%10)); }*/ public static void init() { mtab = new int[12];/* dup_x2 fehlt mtab[0] = mtab[2] = mtab[4] = mtab[6] = mtab[7] = mtab[9] = mtab[11] = 31; mtab[3] = mtab[5] = mtab[8] = mtab[10] = 30; mtab[1] = 28;*/ mtab[0] = 31; mtab[1] = 28; mtab[2] = 31; mtab[3] = 30; mtab[4] = 31; mtab[5] = 30; mtab[6] = 31; mtab[7] = 31; mtab[8] = 30; mtab[9] = 31; mtab[10] = 30; mtab[11] = 31; buf = new int[20]; setDate(2002, 01, 01); setTime(00, 00, 00); next = JopSys.rd(JopSys.IO_CNT)+JopSys.ONE_SECOND; } public static boolean loop() { if (next-JopSys.rd(JopSys.IO_CNT) < 0) { ++s; if (s==86400) { s = 0; ++day; if ((leap && day==367) || (!leap && day==366)) { day = 1; ++year; leap = leapYear(year); mtab[1] = leap ? 29 : 28; } } next += JopSys.ONE_SECOND; return true; } return false; } public static boolean setDate(int y, int m, int d) { boolean oldLeap = leap; if (m<1 || m>12) return false; leap = leapYear(y); mtab[1] = leap ? 29 : 28; if (d<1 || d>mtab[m-1]) { leap = oldLeap; mtab[1] = leap ? 29 : 28; return false; } year = y; day = 0; for (int i=0; i<m-1; ++i) { day += mtab[i]; } day += d; return true; } public static boolean setTime(int hour, int min, int sec) { if (hour<0 || hour>23) return false; if (min<0 || min>59) return false; if (sec<0 || sec>59) return false; s = hour*3600 + min*60 +sec; return true; } public static int getYear() { return year; } public static int getMonth() { int m; int d = mtab[0]; for (m=1; m<12 && d<day; ++m) { d += mtab[m]; } return m; } public static int getDay() { int m; int d = mtab[0]; for (m=1; m<12 && d<day; ++m) { d += mtab[m]; } return day-d+mtab[m-1]; } public static int getSec() { return s; } public static void getDate(int[] buf) { int i; buf[4] = '-'; buf[7] = '-'; buf[10] = ' '; buf[13] = ':'; buf[16] = ':'; buf[19] = ' '; buf[0] = '0'+year/1000; buf[1] = '0'+year%1000/100; buf[2] = '0'+year%100/10; buf[3] = '0'+year%10; i = getMonth(); buf[5] = '0'+i/10; buf[6] = '0'+i%10; i = getDay(); buf[8] = '0'+i/10; buf[9] = '0'+i%10; i = s/3600; buf[11] = '0'+i/10; buf[12] = '0'+i%10; i = s%3600/60; buf[14] = '0'+i/10; buf[15] = '0'+i%10; i = s%60; buf[17] = '0'+i/10; buf[18] = '0'+i%10; buf[19] = ' '; } private static boolean leapYear(int y) { if (y%4 == 0) { if (y%100 == 0) { if (y%400 == 0) { return true; } return false; } return true; } return false; }/* public static void main(String[] args) { init(); System.out.println(setDate(2000, 1, 1)+" "+day+" "+getMonth()+" "+getDay()); System.out.println(setDate(2000, 0, 1)+" "+day+" "+getMonth()+" "+getDay()); System.out.println(setDate(2000, 1, 31)+" "+day+" "+getMonth()+" "+getDay()); System.out.println(setDate(2000, 2, 1)+" "+day+" "+getMonth()+" "+getDay()); System.out.println(setDate(2000, 12, 31)+" "+day+" "+getMonth()+" "+getDay()); System.out.println(setDate(2000, 2, 29)+" "+day+" "+getMonth()+" "+getDay()); System.out.println(setDate(2001, 2, 29)+" "+day+" "+getMonth()+" "+getDay()); System.out.println(setDate(2001, 12, 31)+" "+day+" "+getMonth()+" "+getDay()); setDate(2000, 1, 1); for (day=1; day<368; ++day) { System.out.println(getYear()+"-"+getMonth()+"-"+getDay()); } setDate(2001, 1, 1); for (day=1; day<368; ++day) { System.out.println(getYear()+"-"+getMonth()+"-"+getDay()); } }*/}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -