时钟代码怎么写(时钟的代码)

时钟代码怎么写(时钟的代码)tbody tr td id artContent style max width 656px div style width 656px margin 0 padding 0 height 0 div lt td tr tbody

大家好,我是讯享网,很高兴认识大家。




讯享网

 <tbody> <tr> <td id="artContent" style="max-width: 656px;"> <div style="width: 656px; margin: 0; padding: 0; height: 0;"></div> <p>/*</p><p>功能:显示时间</p><p>文中有注释</p><p>编译器以及环境:VS2013/WINDOWS7</p><p>完整代码如下:</p><p>*/</p><p>#include&lt;graphics.h&gt;</p><p>#include&lt;time.h&gt;</p><p>#include&lt;math.h&gt;</p><p>#include&lt;conio.h&gt;</p><p>#include&lt;stdio.h&gt;</p><p>#define PI 3.9793</p><p>//画时钟盘</p><p>void draw();</p><p>//画表针</p><p>void drawHand(int hour, int minute, int second, int Milliseconds);</p><p>//显示年月日 星期</p><p>void showDate(int year, int month, int date, int day);</p><p>int main()</p><p>{</p><p>//创建窗口</p><p>initgraph(600, 600);</p><p>setwritemode(R2_XORPEN);</p><p>//画时钟盘</p><p>draw();</p><p>//画表针</p><p>//drawHand();</p><p>//定义时间变量保存时间</p><p>SYSTEMTIME ti;</p><p>while(1)</p><p>{</p><p>//获取当前时间</p><p>GetLocalTime(&amp;ti);</p><p>//动态画时钟指针</p><p>drawHand(ti.wHour, ti.wMinute, ti.wSecond, ti.wMilliseconds);</p><p>//显示上午AM 或下午PM</p><p>setbkmode(TRANSPARENT);</p><p>if (ti.wHour&gt;0 &amp;&amp; ti.wHour&lt;12)</p><p>{</p><p>outtextxy(75, 70, _T(&#39;AM.&#39;));</p><p>}</p><p>else</p><p>{</p><p>outtextxy(75, 70, _T(&#39;PM.&#39;));</p><p>}</p><p>//显示年月日 星期</p><p>showDate(ti.wYear, ti.wMonth,ti.wDay, ti.wDayOfWeek);</p><p>//每隔1毫秒重画时钟指针</p><p>Sleep(999);</p><p>drawHand(ti.wHour, ti.wMinute, ti.wSecond, ti.wMilliseconds);</p><p>}</p><p>/*</p><p>typedef struct _SYSTEMTIME {</p><p>WORD wYear;</p><p>WORD wMonth;</p><p>WORD wDayOfWeek;</p><p>WORD wDay;</p><p>WORD wHour;</p><p>WORD wMinute;</p><p>WORD wSecond;</p><p>WORD wMilliseconds;</p><p>} SYSTEMTIME, *PSYSTEMTIME, *LPSYSTEMTIME;</p><p>*/</p><p>closegraph();</p><p>return 0;</p><p>}</p><p>//绘制表针</p><p>void drawHand(int hour, int minute, int second,int Milliseconds)</p><p>{</p><p>//对应表盘偏转弧度制 12点位置定了0度 h m s分别表示时/分/秒对应弧度</p><p>double h, m, s;</p><p>//以中心为起点针的绘制的结束点位置坐标</p><p>double xh, yh, xm, ym, xs, ys;</p><p>//每毫秒所有针转过弧度值</p><p>double a = PI / 30000.0;</p><p>//表盘中最小刻度弧度值</p><p>double b = PI/30.0;</p><p>//设置坐标原点</p><p>setorigin(300, 300);</p><p>//设置分针长180 / 时针长155 / 秒针长190</p><p>//利用三角函数求出针所在位置</p><p>//y轴正方向朝下</p><p>s = second*1000.0 * a;</p><p>m = minute*b+second*50/3*a;</p><p>h = hour*b*5+minute*b/12;</p><p>xh = 155.0 * sin(h);</p><p>yh = 155.0 * cos(h);</p><p>xm = 180.0 * sin(m);</p><p>ym = 180.0 * cos(m);</p><p>xs = 190.0 * sin(s);</p><p>ys = 190.0 * cos(s);</p><p>//绘制秒针</p><p>setlinestyle(PS_SOLID | PS_JOIN_ROUND | PS_ENDCAP_ROUND, 3);</p><p>setlinecolor(RED);</p><p>line(0, 0, xs, -ys);</p><p>//绘制分针</p><p>setlinestyle(PS_SOLID | PS_JOIN_ROUND | PS_ENDCAP_ROUND, 5);</p><p>setlinecolor(GREEN);</p><p>line(0, 0, xm, -ym);</p><p>//绘制时针</p><p>setlinestyle(PS_SOLID | PS_JOIN_ROUND | PS_ENDCAP_ROUND, 10);</p><p>setlinecolor(GREEN);</p><p>line(0, 0, xh, -yh);</p><p>}</p><p>//画时钟盘</p><p>void draw()</p><p>{</p><p>//这种窗口中心为原点</p><p>setorigin(300, 300);</p><p>//绘制外圆</p><p>circle(0, 0, 250);</p><p>//绘制内圆</p><p>circle(0, 0, 225);</p><p>//绘制针轴小圆点</p><p>circle(0, 0, 2);</p><p>//辅助圆</p><p>//circle(0, 0, 190);</p><p>//绘制刻度</p><p>int x, y,x1,y1;</p><p>for (int i = 0; i &lt; 60;i++)//2*PI=360度 时刻度间隔弧度为2*PI/12即PI/6 ; 分刻度间隔弧度为2*PI/60</p><p>{</p><p>//设置字体</p><p>settextstyle(22, NULL, _T(&#39;楷体&#39;));</p><p>x = 220*sin(i*PI/30);</p><p>y = 220*cos(i*PI/30);</p><p>x1 = 210 * sin(i*PI/30);</p><p>y1 = 210 * cos(i*PI/30);</p><p>//翻转坐标成数学坐标</p><p>y = -1 * y;</p><p>y1 = -1 * y1;</p><p>switch(i)</p><p>{ //绘制3,6,9,12数字对应的位置</p><p>//不用使用for循环因为了方便微调各个数字文本坐标</p><p>case 0:</p><p>outtextxy(x1-10, y1-4, _T(&#39;12&#39;));</p><p>break;</p><p>case 15:</p><p>outtextxy(x1-8, y1-10, _T(&#39;3&#39;));</p><p>break;</p><p>case 30:</p><p>outtextxy(x1-5, y1-15, _T(&#39;6&#39;));</p><p>break;</p><p>case 45:</p><p>outtextxy(x1, y1-10, _T(&#39;9&#39;));</p><p>break;</p><p>case 5:</p><p>outtextxy(x1-8 , y1-6 , _T(&#39;1&#39;));</p><p>break;</p><p>case 10:</p><p>outtextxy(x1-8 , y1-7, _T(&#39;2&#39;));</p><p>break;</p><p>case 20:</p><p>outtextxy(x1-7 , y1-14 , _T(&#39;4&#39;));</p><p>break;</p><p>case 25:</p><p>outtextxy(x1-6 , y1-14 , _T(&#39;5&#39;));</p><p>break;</p><p>case 35:</p><p>outtextxy(x1-3 , y1-13 , _T(&#39;7&#39;));</p><p>break;</p><p>case 40:</p><p>outtextxy(x1-1 , y1-12 , _T(&#39;8&#39;));</p><p>break;</p><p>case 50:</p><p>outtextxy(x1-2 , y1-7 , _T(&#39;10&#39;));</p><p>break;</p><p>case 55:</p><p>outtextxy(x1-2 , y1-7 , _T(&#39;11&#39;));</p><p>break;</p><p>default:</p><p>break;</p><p>}</p><p>if (i % 5 == 0)</p><p>{</p><p>setfillcolor(RGB(255,255,0));</p><p>fillrectangle(x - 4, y - 4, x +4, y +4);</p><p>}</p><p>else</p><p>fillcircle(x, y, 2);</p><p>}</p><p>}</p><p>//显示年/月/日 星期几</p><p>void showDate(int year, int month, int date ,int day)</p><p>{</p><p>setorigin(0, 0);</p><p>//struct dday</p><p>//{</p><p>wchar_t y[10];</p><p>wchar_t m[10];</p><p>wchar_t d[10];</p><p>wchar_t wd[7][10] = {_T(&#39;星期日&#39;),_T(&#39;星期一&#39;),_T(&#39;星期二&#39;),_T(&#39;星期三&#39;),_T(&#39;星期四&#39;),_T(&#39;星期五&#39;),_T(&#39;星期六&#39;)};</p><p>//}D;</p><p>_itow_s(year, y,10);</p><p>wcscat(y, _T(&#39;年&#39;));</p><p>_itow_s(month, m, 10);</p><p>wcscat(m,_T(&#39;月&#39;));</p><p>_itow_s(date, d, 10);</p><p>wcscat(d,_T(&#39;日&#39;));</p><p>//去除文字背景色</p><p>setbkmode(TRANSPARENT);</p><p>outtextxy(205, 370, y);</p><p>outtextxy(285, 370, m);</p><p>outtextxy(320, 370, d);</p><p>switch (day)</p><p>{</p><p>case 0:</p><p>outtextxy(355, 20, wd[0]);</p><p>break;</p><p>case 1:</p><p>outtextxy(275, 400, wd[1]);</p><p>break;</p><p>case 2:</p><p>outtextxy(355, 20, wd[2]);</p><p>break;</p><p>case 3:</p><p>outtextxy(355, 20, wd[3]);</p><p>break;</p><p>case 4:</p><p>outtextxy(355, 20, wd[4]);</p><p>break;</p><p>case 5:</p><p>outtextxy(355, 20, wd[5]);</p><p>break;</p><p>case 6:</p><p>outtextxy(355, 20, wd[6]);</p><p>break;</p><p>default:</p><p>outtextxy(355, 20, wd[7]);</p><p>break;</p><p>}</p><p>}</p><p>//成品截图,因为时钟是动态的,图是静态所以图是不会动的</p><div><div><img doc360img-src='http://image109.360doc.com/DownloadImg/2021/01/1916/_1_' src="http://image109.360doc.com/DownloadImg/2021/01/1916/_1_"></div></div><div><div><img doc360img-src='http://image109.360doc.com/DownloadImg/2021/01/1916/_2_' src="http://image109.360doc.com/DownloadImg/2021/01/1916/_2_"></div></div><p>//流程图</p><div><div><img doc360img-src='http://image109.360doc.com/DownloadImg/2021/01/1916/_3_' src="http://image109.360doc.com/DownloadImg/2021/01/1916/_3_"></div></div> </td> </tr> </tbody> 

讯享网
小讯
上一篇 2025-06-10 09:59
下一篇 2025-05-08 21:09

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/190144.html