當前位置:首頁 » 編程軟體 » 怎樣編程時鍾

怎樣編程時鍾

發布時間: 2025-02-07 21:59:38

⑴ 不會編程也能親手編寫一個桌面數字小時鍾程序,僅3步輕松實現

無需編程基礎,也能輕松創建一個桌面數字時鍾程序,只需3個簡單步驟即可實現。下面一步步教你操作:



  1. 打開記事本,輸入13行代碼,開始製作你的數字時鍾。運行前,先看下成品效果:

  2. 在記事本中編寫源碼,保存為.bat文件,如"小時鍾.bat",並更改編碼為ANSI,保存在桌面或任意文件夾

  3. 雙擊.bat文件,你親手打造的數字時鍾程序便會顯示在屏幕上,成就感滿滿。


如果你好奇代碼背後的邏輯:



  • 第1行的"echo off"防止命令提示符顯示命令,"@"表示命令也作用於自身。

  • 第2行設置控制台標題。

  • 第3-5行調整控制台顯示格式。

  • 第6-12行依次顯示時間和日期,通過ping命令實現延遲和清屏。

  • 第13行利用"goto"指令,讓程序從指定標簽(main-line5)重復執行。


現在就動手實踐吧,完成後歡迎在評論區分享你的成果。w3cschool編程獅將持續分享更多技術干貨,期待你的關注與互動~

⑵ 求助PLC時鍾控制編程

看你是什麼PLC,一般PLC都是有系統時鍾功能的,下面是三菱的:

(1)時鍾數據讀出指令

時鍾數據讀出TRD (Time Read)的功能指令編號為FNC166,[D.]可取T、C和D,只有16位運算,佔5個程序步。該指令用來讀出內置的實時鍾的數據,並存放在[D·]開始的7個字內,實時鍾的時間數據存放在特殊輔助寄存器D8013~D8019內,D8018~D8013中分別存放年、月、日、時、分和秒,星期存放在D8019中。


(2)時鍾數據寫入指令

時鍾數據寫入指令TWR(Time Write)的功能指令編號為FNC167,[S·]可取T、C和D,只有16位運算,佔5個程序步。該指令用來將時間設定值寫入內置的實時鍾,寫入的數據預先放在[S·]開始的7個單元內,執行該指令時,內置的實時鍾立即變更,改為使用新的時間。圖4-93中的D10~D15分別存放年、月、日、時、分和秒,D16存放星期。


應用:

X3為ON時,D8018~D8013中存放的6個時鍾數據分別入D0~D5,D8019中的星期值讀入D6。

X4為ON時,D10~D15中的預置值分別入D8018~D8013,D16中的數值寫入D8019。

⑶ 易語言時鍾怎麼編程,求大神指教

1.首先從工具欄中拖入這個空間到窗口那

c語言怎麼樣編寫一個時鍾程序

c語言時鍾程序代碼如下:

#include<windows.h>

#include<math.h>

#define ID_TIMER 1//計時器ID

#define TWOPI (2*3.14159)

LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR szCmdLine,int iCmdShow)

{

static TCHAR szAppName[]=TEXT("Clock");

HWND hwnd;

MSG msg;

WNDCLASS wndclass;

wndclass.cbClsExtra=0;

wndclass.cbWndExtra=0;

wndclass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);

wndclass.hCursor=LoadCursor(NULL,IDC_ARROW);

wndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION);

wndclass.hInstance=hInstance;

wndclass.lpfnWndProc=WndProc;

wndclass.lpszClassName=szAppName;

wndclass.lpszMenuName=NULL;

wndclass.style=CS_HREDRAW|CS_VREDRAW;

if(!RegisterClass(&wndclass))

{

MessageBox(NULL,TEXT("This program requires Windows

T"),szAppName,MB_ICONERROR);

return 0;

}

hwnd=CreateWindow(szAppName,TEXT("Analog Clock"),WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,hInstance,NULL);

ShowWindow(hwnd,iCmdShow);

UpdateWindow(hwnd);

while(GetMessage(&msg,NULL,0,0))

{

TranslateMessage(&msg);

DispatchMessage(&msg);

}

return msg.wParam;

}

void Setsotropic(HDC hdc,int cxClient,int cyClient)

{

SetMapMode(hdc,MM_ISOTROPIC);

SetWindowExtEx(hdc,1000,1000,NULL);

SetViewportExtEx(hdc,cxClient/2,-cyClient/2,NULL);

SetViewportOrgEx(hdc,cxClient/2,cyClient/2,NULL);

}

void RotatePoint(POINT pt[],int iNum,int iAngle)

{

int i;

POINT ptTemp;

for(i=0;i<iNum;i++)

{

ptTemp.x=(int)(pt[i].x*cos(TWOPI*iAngle/360)+pt[i].y*sin(TWOPI*iAngle/360));

ptTemp.y=(int)(pt[i].y*cos(TWOPI*iAngle/360)+pt[i].x*sin(TWOPI*iAngle/360));

pt[i]=ptTemp;

}

}

void DrawClock(HDC hdc)

{

int iAngle;

POINT pt[3];

for(iAngle=0;iAngle<360;iAngle+=6)

{

pt[0].x=0;

pt[0].y=900;

RotatePoint(pt,1,iAngle);

pt[2].x=pt[2].y=iAngle%5?33:100;

pt[0].x-=pt[2].x/2;

pt[0].y-=pt[2].y/2;

pt[1].x=pt[0].x+pt[2].x;

pt[1].y=pt[0].y+pt[2].y;

SelectObject(hdc,GetStockObject(BLACK_BRUSH));

Ellipse(hdc,pt[0].x,pt[0].y,pt[1].x,pt[1].y );

}

}

void DrawHands(HDC hdc,SYSTEMTIME *pst,BOOL fChange)

{

static POINT pt[3][5]={0,-150,100,0,0,600,-100,0,0,-150, 0,-200,50,0,0,800,-50,0,0,-200, 0,0,0,0,0,0,0,0,0,800 };

int i,iAngle[3];

POINT ptTemp[3][5];

iAngle[0]=(pst->wHour*30)%360+pst->wMinute/2;

iAngle[1]=pst->wMinute*6;

iAngle[2]=pst->wSecond*6;

memcpy(ptTemp,pt,sizeof(pt));

for(i=fChange?0:2;i<3;i++)

{

RotatePoint(ptTemp[i],5,iAngle[i]);

Polyline(hdc,ptTemp[i],5);

}

}

LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)

{

static int cxClient,cyClient;

static SYSTEMTIME stPrevious;

BOOL fChange;

HDC hdc;

PAINTSTRUCT ps;

SYSTEMTIME st;

switch(message)

{

case WM_CREATE:

SetTimer(hwnd,ID_TIMER,1000,NULL);

GetLocalTime(&st);

stPrevious=st;

return 0;

case WM_SIZE:

cxClient=LOWORD(lParam);

cyClient=HIWORD(lParam);

return 0;

case WM_TIMER:

GetLocalTime(&st);

fChange=st.wHour!=stPrevious.wHour||st.wMinute!=stPrevious.wMinute;

hdc=GetDC(hwnd);

Setsotropic(hdc,cxClient,cyClient);

SelectObject(hdc,GetStockObject(WHITE_PEN));

DrawHands(hdc,&stPrevious,fChange);

SelectObject(hdc,GetStockObject(BLACK_PEN));

DrawHands(hdc,&st,TRUE);

stPrevious=st;

return 0;

case WM_PAINT:

hdc=BeginPaint(hwnd,&ps);

Setsotropic(hdc,cxClient,cyClient);

DrawClock(hdc);

DrawHands(hdc,&stPrevious,TRUE);

EndPaint(hwnd,&ps);

return 0;

case WM_DESTROY:

KillTimer(hwnd,ID_TIMER);

PostQuitMessage(0);

return 0;

}

return DefWindowProc(hwnd,message,wParam,lParam);

}

熱點內容
伺服器地址及密碼 發布:2025-04-23 03:05:53 瀏覽:268
ct6買哪個配置的好 發布:2025-04-23 03:05:08 瀏覽:913
c語言輸出多組數據 發布:2025-04-23 03:04:21 瀏覽:577
liststringjava 發布:2025-04-23 02:56:18 瀏覽:407
asi源碼 發布:2025-04-23 02:46:45 瀏覽:577
小候編程 發布:2025-04-23 02:46:41 瀏覽:559
網路工程師使用哪些軟體寫腳本 發布:2025-04-23 02:28:43 瀏覽:458
c語言短路現象 發布:2025-04-23 02:23:54 瀏覽:303
可運行腳本怎麼寫 發布:2025-04-23 02:23:09 瀏覽:324
安卓死亡空間怎麼飛行 發布:2025-04-23 02:17:21 瀏覽:545