桌面时钟代码
react 实时获取并显示当前时间的方法

一、介绍在前端开发中,经常遇到需要获取并显示当前时间的需求。
react作为一种流行的前端框架,提供了多种方法来实现这一功能。
本文将介绍在react中实时获取并显示当前时间的方法,包括使用javascript内置的Date对象、使用计时器、以及使用第三方库等多种实现方式。
二、使用Date对象1. 获取当前时间在react中,可以使用javascript内置的Date对象来获取当前时间。
可以通过以下代码来获取当前时间:```javascriptconst currentTime = new Date();```2. 实时更新时间要实现实时更新当前时间,可以使用react的状态(state)来存储当前时间,并使用计时器(setInterval)来定时更新。
以下是一个简单的实现示例:```javascriptclass Clock extends ponent {constructor(props) {super(props);this.state = { currentTime: new Date() };}ponentDidMount() {this.timer = setInterval(() => {this.setState({ currentTime: new Date() });}, 1000);}ponentWillUnmount() {clearInterval(this.timer);}render() {return (<div><p>Current Time:{this.state.currentTime.toLocaleTimeString()}</p> </div>);}}```以上代码中,我们定义了一个Clock组件,通过state来存储当前时间,并在组件挂载后使用计时器来每秒更新一次当前时间。
在组件卸载前,需要清除计时器,以防止内存泄漏。
c中timer的用法

c中timer的用法
1. clock(函数:
示例代码:
```
#include <stdio.h>
int mai
clock_t t;
int i;
t = clock(;
//程序执行的代码
}
t = clock( - t;
return 0;
}
```
在上面的示例中,程序会测量for循环的执行时间,并将结果打印在屏幕上。
在计算程序执行时间时,需要将时钟周期转换为秒,可以通过“CLOCKS_PER_SEC”宏实现。
示例代码:
```
#include <stdio.h>
int mai
return 0;
}
```
在上面的示例中,程序将打印出当前系统时间。
除了上述基本的定时器函数之外,还有其他一些函数和方法可用于测量和处理时间:
- sleep(函数:可以让程序暂停指定的秒数。
-使用时钟频率:通过计算指令执行的时间来测量程序的执行时间。
- 使用操作系统提供的工具和库:大多数操作系统都提供了用于测量程序执行时间的工具和库,例如Windows的QueryPerformanceCounter(函数、Linu某的getrusage(函数等。
总而言之,定时器是一个在C语言中测量程序执行时间和跟踪性能的重要工具。
与操作系统提供的其他工具和库相结合,我们可以更准确地衡量我们的程序的性能,并优化我们的代码。
希望这篇文章对你理解C语言中定时器的相关用法有所帮助!。
VB可视化程序设计实例——小时钟

VB可视化程序设计实例——小时钟本例专门针对程序设计初学者而设计,尤其适合第一次接触VB的学生学习。
通过用VB来设计如图3.39所示的时钟程序,初步感受一下可视化和面向对象的程序设计过程。
图3.39 时钟程序运行效果小时钟程序中包含窗体控件、标签控件和计时器控件等3个控件。
窗体控件是小时钟程序运行时的窗口,标题栏上的标题是“时钟”,在右上角有最小化、最大化和关闭按钮。
标签控件可以用来显示文本,本例中用来显示时间,如“9:48:57”。
计时器控件每秒一次把计算机的当前系统时间显示到标签控件中,使得小时钟不停地运行。
Array启动VB,首先显示“新建工程”对话框(图3.40),在选择“新建”选项卡中的“标准EXE”项后,单击“打开”按钮,进入VB编程环境,如图3.41所示。
图3.40 “新建工程”对话框图3.41 VB 可视化编程环境 除了标题栏、菜单栏和标准工具栏外,编程环境中还有工具箱、窗体和属性等窗口。
双击工具箱(图3.42)中的标签控件,在窗体Form1中放置可以显示文本信息的标签控件Label1,见图3.43。
时钟的时、分和秒以后就显示在Label1中。
拖曳Label1可以移动它,拖曳它的八个控制点,可以改变它的大小。
图3.42 工具箱 图3.43 label1控件 图3.44 计时器控件双击工具箱中的计时器控件,在窗体Form1中放置计时器控件Timer1,见图3.44。
计时器控件以一定的时间周期,调用一个事件。
计时器控件只有在设计阶段出现在窗体上,程序运行时是不可见的,它的位置和大小无关紧要。
到目前为止,已经建立了窗体Form1、标签控件Label1和计时器控件Timer1等3个对象。
下面,将设置它们的属性。
窗体窗口图3.45 窗体Form1属性图3.46 窗体Form1 单击窗体Form1,属性窗口中出现Form1的属性,见图3.45。
在Caption(标题)属性内,输入“时钟”,Form1的标题栏就显示“时钟”,见图3.46。
Android实现显示系统实时时间

Android实现显⽰系统实时时间Android显⽰系统实时时间的具体代码,供⼤家参考,具体内容如下获取系统当前时间 System.currentTimeMillis();需要开启⼀个线程,我们通过Handler来实现实时更新时间效果图Activity.xml代码<TextViewandroid:id="@+id/real_time"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="-- --"/>MainActivity代码@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.activity_main);real_time=findViewById(R.id.real_time);Startthread();}//开启⼀个⼦线程private void Startthread(){new Thread(){@Overridepublic void run() {do {try {Thread.sleep(1000);Message message=new Message();message.what=1;handler.sendMessage(message);} catch (InterruptedException e) {e.printStackTrace();}}while (true);}}.start();}//在主线程中进⾏数据处理private Handler handler=new Handler(){@Overridepublic void handleMessage(@NonNull Message msg) {switch (msg.what){case 1:long time = System.currentTimeMillis();CharSequence format = DateFormat.format("hh:mm:ss yyyy-MM-dd", time);real_time.setText(format);break;}}};以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
与日期时间格式相关的代码符号

与日期时间格式相关的代码符号代码 符号含义及示例aaa使用中文简称显示星期几(一~日),不显示“星期”两字aaaa使用中文全称显示星期几(“星期一”~“星期日”)d使用没有前导0的数字来显示日期(1~31)dd使用有前导0的数字来显示日期(01~31)ddd使用英文缩写来显示星期几(Sun ~ Sat )dddd使用英文全称来显示星期几(Sunday ~ Saturday )m使用没有前导0的数字来显示月份或分钟(1~12或0~59)mm使用有前导0的数字来显示月份或分钟(1~12或0~59)mmm使用英文缩写显示月份(Jan ~ Dec )mmmm使用英文全称显示月份(January ~ December )mmmmm使用英文首字母显示月份(J ~ D )yy使用两位数字显示公历年份(00~99)yyyy使用4位数字显示公历年份(1900~9999)h使用没有前导0的数字来显示小时(0~23)hh使用有前导0的数字来显示小时(0~23)s使用没有前导0的数字来显示秒数(0~59)ss使用有前导0的数字来显示秒数(0~59)[h]、[m]、[s]显示超出进制的小时数、分钟数、秒数(如大于24小时数或大于60的分与秒)AM/PM(A/P)使用英文上、下午显示12进制时间上午/下午使用英文上、下午显示12进制时间b 使用两位数字显示泰历(佛历)年份(43~99)bb 使用两位数字显示泰历(佛历)年份(43~99)bbb 使用4位数字显示公历年份(2443~9999)。
DS3231高精度时钟程序代码(单片机STC89c52RC与1602显示)

//DS3231,经测试,日期,时间,星期,温度可以用1602显示#include <reg51.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned int#define yh 0x80 //第一行的初始位置#define er 0x80+0x40 //第二行初始位置sbit wr=P1^1;sbit rs=P1^0;sbit en=P2^5;sbit SDA=P3^6; //模拟I2C数据传送位SDAsbit SCL=P3^7; //模拟I2C时钟控制位SCLsbit INT=P3^2;sbit key1=P1^7; //功能键,修改键sbit key2=P3^4; //上调键sbit key3=P3^5; //下调键sbit RESET=P3^3;bit ack; //应答标志位#define DS3231_WriteAddress 0xD0 //器件写地址#define DS3231_ReadAddress 0xD1 //器件读地址#define DS3231_SECOND 0x00 //秒#define DS3231_MINUTE 0x01 //分#define DS3231_HOUR 0x02 //时#define DS3231_WEEK 0x03 //星期#define DS3231_DAY 0x04 //日#define DS3231_MONTH 0x05 //月#define DS3231_YEAR 0x06 //年//闹铃1#define DS3231_SALARM1ECOND 0x07 //秒#define DS3231_ALARM1MINUTE 0x08 //分#define DS3231_ALARM1HOUR 0x09 //时#define DS3231_ALARM1WEEK 0x0A //星期/日//闹铃2#define DS3231_ALARM2MINUTE 0x0b //分#define DS3231_ALARM2HOUR 0x0c //时#define DS3231_ALARM2WEEK 0x0d //星期/日#define DS3231_CONTROL 0x0e //控制寄存器#define DS3231_STATUS 0x0f //状态寄存器#define BSY 2 //忙#define OSF 7 //振荡器停止标志#define DS3231_XTAL 0x10 //晶体老化寄存器#define DS3231_TEMPERATUREH 0x11 //温度寄存器高字节(8位) #define DS3231_TEMPERATUREL 0x12 //温度寄存器低字节(高2位) uchar a,miao,shi,fen,ri,yue,nian,week,temp1,temp2,key1n,temp; uchar code tab1[]={"2017- - FRI"};uchar code tab2[]={" : : ."};uchar HEX2BCD(uchar val) //B码转换为BCD码{uchar k;k=(val)/10*16+(val)%10;return k;}uchar BCD_Decimal(uchar bcd){uchar Decimal;Decimal=bcd>>4;return(Decimal=Decimal*10+(bcd&=0x0F));}void delayus(uint us){while (us--);}void Start_I2C(){SDA=1; //发送起始条件的数据信号delayus(1);SCL=1;delayus(5); //起始条件建立时间大于4.7us,延时SDA=0; //发送起始信号delayus(5); // 起始条件锁定时间大于4μsSCL=0; //钳住I2C总线,准备发送或接收数据delayus(2);}void Stop_I2C(){SDA=0; //发送结束条件的数据信号delayus(1); //发送结束条件的时钟信号SCL=1; //结束条件建立时间大于4usdelayus(5);SDA=1; //发送I2C总线结束信号delayus(4);}void SendByte(uchar c){uchar BitCnt;for(BitCnt=0;BitCnt<8;BitCnt++) //要传送的数据长度为8位{if((c<<BitCnt)&0x80)SDA=1; //判断发送位elseSDA=0;delayus(1);SCL=1; //置时钟线为高,通知被控器开始接收数据位delayus(5); //保证时钟高电平周期大于4μsSCL=0;}delayus(2);SDA=1; //8位发送完后释放数据线,准备接收应答位delayus(2);SCL=1;delayus(3);if(SDA==1)ack=0;elseack=1; //判断是否接收到应答信号SCL=0;delayus(2);}uchar RcvByte(){uchar retc;uchar BitCnt;retc=0;SDA=1; //置数据线为输入方式for(BitCnt=0;BitCnt<8;BitCnt++){SCL=0; //置时钟线为低,准备接收数据位delayus(5); //时钟低电平周期大于4.7μsSCL=1; //置时钟线为高使数据线上数据有效delayus(3);retc=retc<<1;if(SDA==1)retc=retc+1; //读数据位,接收的数据位放入retc中delayus(2);}SCL=0;delayus(2);return(retc);}void Ack_I2C(bit a){if(a==0)SDA=0; //在此发出应答或非应答信号elseSDA=1;SCL=1;delayus(5); //时钟低电平周期大于4μsSCL=0; //清时钟线,钳住I2C总线以便继续接收delayus(2);}uchar write_byte(uchar addr, uchar write_data){Start_I2C();SendByte(DS3231_WriteAddress);if (ack == 0)return 0;SendByte(addr);if (ack == 0)return 0;SendByte(write_data);if (ack == 0)return 0;Stop_I2C();return 1;}uchar read_current(){uchar read_data;Start_I2C();SendByte(DS3231_ReadAddress);if(ack==0)return(0);read_data = RcvByte();Ack_I2C(1);Stop_I2C();return read_data;}uchar read_random(uchar random_addr) {Start_I2C();SendByte(DS3231_WriteAddress);if(ack==0)return(0);SendByte(random_addr);if(ack==0)return(0);return(read_current());}void ModifyTime(uchar yea,uchar mon,uchar da,uchar hou,uchar min,uchar sec,uchar week){uchar temp=0;temp=HEX2BCD(yea);write_byte(DS3231_YEAR,temp); //修改年temp=HEX2BCD(mon);write_byte(DS3231_MONTH,temp); //修改月temp=HEX2BCD(da);write_byte(DS3231_DAY,temp); //修改日temp=HEX2BCD(hou);write_byte(DS3231_HOUR,temp); //修改时temp=HEX2BCD(min);write_byte(DS3231_MINUTE,temp); //修改分temp=HEX2BCD(sec);write_byte(DS3231_SECOND,temp); //修改秒temp=HEX2BCD(week);write_byte(DS3231_WEEK,temp); //修改星期}/******************液晶写入************************/ write_1602com(uchar com)//液晶写入指令函数{rs=0;//置为写入命令P0=com;//送入数据delayus(1000);en=1;//拉高使能端delayus(1000);en=0;//完成高脉冲}write_1602dat(uchar dat){rs=1;//置为写入数据P0=dat;//送入数据delayus(1000);en=1;delayus(1000);en=0;}/*********************over***********************/ lcd_init()//液晶初始化函数{ wr=0;write_1602com(0x38);//设置液晶工作模式write_1602com(0x0c);//开显示不显示光标write_1602com(0x06);//整屏不移动,指针加一write_1602com(0x01);write_1602com(yh+1);//字符写入的位置for(a=0;a<14;a++){write_1602dat(tab1[a]);//delay(3);}write_1602com(er);for(a=0;a<12;a++){write_1602dat(tab2[a]);//delay(3);}write_1602com(er+14); //写温度符号write_1602dat(0xdf);write_1602dat(0x43);}void write_sfm(uchar add,uchar dat)//写时分秒及温度{uchar gw,sw;gw=dat%10;sw=dat/10;write_1602com(er+add);write_1602dat(0x30+sw);write_1602dat(0x30+gw);}void write_nyr(uchar add,uchar dat) //写日期{uchar gw,sw;gw=dat%10;sw=dat/10;write_1602com(yh+add);write_1602dat(0x30+sw);write_1602dat(0x30+gw);}void write_week(uchar week)//写星期函数{write_1602com(yh+0x0c);switch(week){case 1:write_1602dat('M');//delay(5);write_1602dat('O');//delay(5);write_1602dat('N');break;case 2:write_1602dat('T');//delay(5);write_1602dat('U');//delay(5);write_1602dat('E');break;case 3:write_1602dat('W');//delay(5);write_1602dat('E');//delay(5);write_1602dat('D');break;case 4:write_1602dat('T');//delay(5);write_1602dat('H');//delay(5);write_1602dat('U');break;case 5:write_1602dat('F');//delay(5);write_1602dat('R');//delay(5);write_1602dat('I');break;case 6:write_1602dat('S');//delay(5);write_1602dat('T');//delay(5);write_1602dat('A');break;case 7:write_1602dat('S');//delay(5);write_1602dat('U');//delay(5);write_1602dat('N');break;}}void keyscan(){if(key1==0)//key1为功能键{delayus(5000);if(key1==0){while(!key1);key1n++;if(key1n==9)key1n=1;switch(key1n){case 1: TR0=0;//关闭定时器//TR1=0;write_1602com(er+0x06);//写入光标位置write_1602com(0x0f);//设置光标为闪烁break;case 2: write_1602com(er+3);//fen//write_1602com(0x0f);break;case 3: write_1602com(er+0);//shi//write_1602com(0x0f);break;case 4: write_1602com(yh+0x0d);//week//write_1602com(0x0f);break;case 5: write_1602com(yh+0x09);//ri//write_1602com(0x0f);break;case 6: write_1602com(yh+0x06);//yue//write_1602com(0x0f);break;case 7: write_1602com(yh+0x03);//nian//write_1602com(0x0f);break;case 8: write_1602com(0x0c);//设置光标不闪烁write_sfm(6,miao);//写入新的秒数temp=(miao)/10*16+(miao)%10;write_byte(DS3231_SECOND,temp); //退出时修改秒write_1602com(er+6);write_sfm(0x03,fen);temp=(fen)/10*16+(fen)%10;write_byte(DS3231_MINUTE,temp); //修改分write_1602com(er+3);TR0=1;//打开定时器break;}}}if(key1n!=0)//当key1按下以下。
51单片机时钟代码(带秒表闹钟功能)

51单片机时钟代码(带秒表闹钟功能)#include#include#defineucharunignedchar#defineuintunignedintbitbeep=P1^5;//蜂鸣器bitLED1=P1"6;//LED灯bitep=P2"7;//1602使能端bitr=P2八6;//1602bitrw=P2八5;//1602bit0二P3八4;//停止闹铃和小灯bit1二P3八5;//功能键bit2二P3飞;//增大键bit3二P3X;//减小键bit4二P3「;//bit5=P3^2;bit6二P3八3;bit7=P3^0;uchar1num,4num,count,count1,judge=0;charec,min,hour,miao,fen,hi,ec1,min1,diwei;voiddelay(uintz){ uint某,y;for(某二z;某〉0;某--)for(y=100;y〉0;y—);}voiddi(){beep=0;delay(50);beep=1;}bitlcd_bz()//测试LCD忙碌状态{bitreult;r=0;rw=1;ep=1;_nop_();_nop_();_nop_();_nop_();reult=(bit)(P0&0某80);ep=0;returnreult;}_nop_();_nop_();_nop_();ep=1;_nop_();_nop_();_nop_();_nop_();ep=0;}voidwrite_data(uchardat)//写入字符显示数据到LCD{while(lcd_bz());//等待LCD空闲r=1;rw=0;ep=0;P0=dat;_nop_();_nop_();_nop_();_nop_();ep=1;_nop_( );_nop_();_nop_();_nop_();ep=0;}ucharhi,ge;hi=dat/10;ge=dat;write_data(0某30+hi);write_data(0某30+ge);}voidwrite_alarm(ucharadd,uchardat){ucharhi1,ge1;hi1=dat/10;ge1=dat;count=0;//clearwrite_data('A');delay(5);hi=17;voidkeycan()//按键扫描{if(l==0){delay(5);if(1==0){1num++;while(!1);di(); if(1num==1){TR0=0;if(1num==2){if(1num==3){if(1num==4){1num=0;if(1num!=0){if(2==0){delay(5);if(2==0){while(!2);di();if(1num==1){ec++;if(ec==60)ec=0;min++;if(min==60)min=0;if(1num==3){hour++;if(hour==24)hour=0;delay(5);if(3==0){while(!3);di();if(1num==1){ec--;if(ec<0)ec=59;if(1num==2){min--;if(min<0)min=59;hour--;if(hour<0)hour=23;}voidkeycan1(){if(4==0){delay(5);if(4==0){4num++;while(!4);di();if(4num==1){TR0=0;if(4num==3){if(4num==4){if(4num!=0){if(5==0){delay(5);if(5==0){while(!5);di();if(4num==1){miao++;if(miao==60)miao=0; write_alarm(10,miao);if(4num==2){fen++;if(fen==60)fen=0;if(4num==3){hi++;if(hi==24)hi=0;write_alarm(4,hi);if(6==0){delay(5);if(6==0){while(!6);di();if(4num==1){miao--;if(miao<0)miao=59;if(4num==2){fen--;if(fen<0)fen=59;write_alarm(7,fen);if(4num==3){hi--;if(hi<0)hi=23;}}if(7==0){delay(5);if(7==0){while(!7)di();judge++;}}if(judge==2){TL0=0某b0;TH0=0某3c; {ec=0;min++;if(min==60){min=0;hour++;if(hour==24){hour=0;}}}}}if(judge==3){judge=0;ec1=0;min1=0;diwei=0;write_alarm(10,miao);write_alarm(7,fen);write_alarm(4,hi);wr ite_alarm(10,miao);write_alarm(7,fen);write_alarm(4,hi);} if(count==20){count=0;ec++;if(ec==60){ec=0;min++;if(min==60){min=0;hour++;if(hour==24){hour=0;}}}}}。
JS获取当前时间,显示“上午”、“下午”的js 特效

JS获取当前时间,显示“上午”、“下午”最后效果如:下午4:44:20 这样的格式,并且时间的秒数是变化的这个网页特效代码如下<html>< head>< meta http-equiv="Content-Type" content="text/html; charset=gb2312"> < title>JS获取当前时间,显示“上午”、“下午”丨芯晴网页特效丨</title>< /head>< body onload="startclock()">< script language=JavaScript>var timerID = null;var timerRunning = false;function stopclock (){if(timerRunning)clearTimeout(timerID);timerRunning = false;}function startclock () {stopclock();showtime();}function showtime () {var now = new Date();var hours = now.getHours();var minutes = now.getMinutes();var seconds = now.getSeconds()var timeValue = "" +((hours >= 12) ? "下午" : "上午" )timeValue += ((hours >12) ? hours -12 :hours)timeValue += ((minutes < 10) ? ":0" : ":") + minutestimeValue += ((seconds < 10) ? ":0" : ":") + secondsdocument.clock.thetime.value = timeValue;timerID = setTimeout("showtime()",1000);timerRunning = true;}< /SCRIPT>< form name=clock >< input name=thetime style="font-size: 9pt;color:#000000;border:0" size=12>< /form>< /body>< /html>。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
桌面时钟代码
title>动态数字时钟
link rel="XXX" type="text/css" href="js.css"> script language="javascript">
n digitalClock() {
var today = new Date();
digit_clock.XXX();
XXX("digitalClock()"。
1000);
digitalClock();
var S = '。
';
S = S.split('');
var M = '*****';
M = M.split('');
var H = '****';
H = H.split('');
var Ybase = 8;
var Xbase = 8;
var dots = 12;
for (var i = 0.i < dots。
i++) {
document.write('' + (i + 1) + '');
for (i = 0.i < S.length。
i++) {
document.write('');
for (i = 0.i < M.length。
i++) {
document.write('');
for (i = 0.i < H.length。
i++) {
document.write('');
script>
h1 align="center" id="digit_clock">
body>
html>
删除该段落,因为它是一行代码,没有任何意义的描述
XXX将分针的圆点放入各自的块中,id属性为m_dots for (i = 0.i < M.length。
i++) {
document.write('');
XXX将时针的圆点放入各自的块中,id属性为h_dots
for (i = 0.i < H.length。
i++) {
document.write('');
显示指针式时钟
n clock() {
var time = new Date();
var secs = time.getSeconds();
var mins = time.getMinutes();
var hrs = time.getHours();
var Ypos = document.body.scrollTop + 80.//将时钟中心设置为距可视区顶边80像素
var Xpos = document.body.scrollLeft + 100.//将时钟中心设置为距可视区左边界100像素
for (var i = 0.i < dots。
++i) {
根据新的时钟中心和各个小时刻度值的角度值,设置其新坐标
dot_Digits[i] = Ypos - 15 + 44 * Math.sin(-Math.PI / 2 + 2 * Math.PI * (i + 1) / 12);
dot_Digits[i].style.left = Xpos - 15 + 44 * Math.cos(-Math.PI / 2 + 2 * Math.PI * (i + 1) / 12);
设置分针的位置
for (var i = 0.i < M.length。
++i) {
M[i] = Ypos - 15 + 34 * Math.sin(-Math.PI / 2 + 2 * Math.PI * (i + 1) / 60);
M[i].style.left = Xpos - 15 + 34 * Math.cos(-Math.PI / 2 + 2 * Math.PI * (i + 1) / 60);
设置时针的位置
for (var i = 0.i < H.length。
++i) {
H[i] = Ypos - 15 + 24 * Math.sin(-Math.PI / 2 + 2 * Math.PI * (i + 1) / 12);
H[i].style.left = Xpos - 15 + 24 * Math.cos(-Math.PI / 2 + 2 * Math.PI * (i + 1) / 12);
设置秒针的位置
= Ypos - 15 + 5 * Math.sin(-Math.PI / 2 + 2 * Math.PI * secs / 60);
sec_hand.style.left = Xpos - 15 + 5 * Math.cos(-Math.PI / 2 + 2 * Math.PI * secs / 60);
设置分针的位置
= Ypos - 15 + 30 * Math.sin(-Math.PI / 2 + 2 * Math.PI * mins / 60);
min_hand.style.left = Xpos - 15 + 30 * Math.cos(-Math.PI / 2 + 2 * Math.PI * mins / 60);
设置时针的位置
= Ypos - 15 + 20 * Math.sin(-Math.PI / 2 + 2 * Math.PI * hrs / 12);
hr_hand.style.left = Xpos - 15 + 20 * Math.cos(-Math.PI / 2 + 2 * Math.PI * hrs / 12);
XXX("clock()"。
1000);
var Xpos = 200.// 时钟中心的横坐标
var Ypos = 200.// 时钟中心的纵坐标
var Xbase = 15.// 每个圆点的横向间距
var Ybase = 15.// 每个圆点的纵向间距
获取所有圆点元素
var dot_Digits =
document.getElementsByClassName('dot_digit');
var s_dots = document.getElementsByClassName('s_dot');
var m_dots = document.getElementsByClassName('m_dot');
var h_XXX('h_dot');
计算秒针角度并设置秒针上各个圆点的坐标值
var sec = -Math.PI/2 + 2*Math.PI * secs/60;
for (var i=0.i < s_dots.length。
i++) {
s_dots[i] = Ypos + i * Ybase * Math.sin(sec);
s_dots[i].style.left = Xpos + i * Xbase * Math.cos(sec);
计算分针角度并设置分针上各个圆点的坐标值
var min = -Math.PI/2 + 2*Math.PI * mins/60;
for (var i=0.i < m_dots.length。
i++) {
m_dots[i] = Ypos + i * Ybase * Math.sin(min);
m_dots[i].style.left = Xpos + i * Xbase * Math.cos(min);
计算时针角度并设置时针上各个圆点的坐标值
var hr = -Math.PI/2 + 2*Math.PI * (hrs+mins/60)/12;
for (var i=0.i < h_dots.length。
i++) {
h_dots[i] = Ypos + i * Ybase * Math.sin(hr);
h_dots[i].style.left = Xpos + i * Xbase * Math.cos(hr);
计算圆点元素在时钟中心的坐标值并设置
for (var i=0.i < dot_Digits.length。
i++) {
dot_Digits[i].style.left = Xpos - 15 + 44 * Math.cos(-Math.PI/2 + 2*Math.PI*(i+1)/12);
定时器,每隔一秒钟调用一次clock()函数
XXX('clock()'。
1000);。