JavaScript의 로직을 갖춘 HTML5의 아날로그 시계. CSS 시계를 시간과 동기화하는 방법 CSS 시계를 시간과 동기화하는 방법

NET TIME은 컴퓨터의 시계를 다른 컴퓨터 또는 도메인과 동기화합니다. 도메인에서 매개변수 없이 사용하는 경우 윈도우 서버, 이 도메인의 시간 서버로 지정된 컴퓨터에 설정된 현재 날짜와 시간을 표시합니다. 이 명령을 사용하면 컴퓨터의 NTP 시간 서버를 설정할 수 있습니다.

NET TIME 명령 구문
  • 순 시간 [(\\컴퓨터_이름 | /도메인[:도메인_이름] | /rts도메인[:도메인_이름])]
  • 순 시간 [\\컴퓨터_이름]
  • 순 시간 [\\computer_name] ], 여기서
    • \\컴퓨터_이름- 시간을 확인하려는 서버 또는 타이머를 동기화하려는 서버의 이름을 나타냅니다.
    • /도메인[:도메인_이름]- 시계가 동기화되는 도메인의 이름을 지정합니다.
    • /rts도메인[:도메인_이름]- 시계가 동기화될 RTS(신뢰할 수 있는 시간 서버)의 도메인을 지정합니다.
    • /세트- 시계를 지정된 컴퓨터 또는 도메인의 시간과 동기화합니다.
    • /querysntp- 구성된 NTP(Network Time Protocol) 서버의 이름을 표시합니다. 로컬 컴퓨터, 또는 \\computer_name 매개변수에 지정된 컴퓨터입니다.
    • /setsntp[:목록_NTP_서버]- 로컬 컴퓨터에서 사용할 NTP 시간 서버 목록을 지정합니다.
    NET TIME 명령 예
    • net help time - 지정된 net 명령에 대한 도움말을 표시합니다.
    • net time \\PC1 - 컴퓨터 PC1의 네트워크에 있는 서버의 현재 시간을 표시합니다.
    • net time /querysntp - 로컬 컴퓨터의 NTP 서버 이름을 화면에 표시합니다.
    • net time \\Proton /set - 로컬 컴퓨터 시계를 Proton 컴퓨터 시간과 동기화합니다.
    Net Time 시스템 오류 5 접근이 거부되었습니다

    사람들은 종종 "왜?"라고 묻는다. 시스템 오류 5. 이용시 접근이 거부되었습니다. 넷 명령시간. 나는 대답합니다. 모든 것은 명령이 실행되는 사용자의 권리입니다. 예를 들어 먼저 로컬 관리자 권한으로 명령을 실행해 보았습니다.

    우리 모두 학교 역사 과정에서 기억하는 것처럼 인류는 천체의 움직임을 관찰하고 지상의 시간을 계산하여 정확한 시간을 추적하기 시작했습니다. 기술이 발전하면서 점점 더 정확한 시간에 대한 필요성이 커졌습니다. 오늘날 전 세계는 원자 시계에 따라 살고 있으며, 국제 SI 단위 시스템에 따라 정확한 시간은 다음과 같이 계산됩니다. 전자기 방사선, 이는 원자의 바닥 상태의 두 초미세 수준 사이의 전환 중에 발생합니다.

    원자시계가 없으면 현재 작업은 불가능하다 현대 시스템내비게이션(GPS, GLONASS, Galileo 포함), 위성 및 지상 통신 시스템, 특히 이동 통신국.

    여러 국가에서는 시간 및 주파수 표준뿐만 아니라 라디오로 시간 신호를 주기적으로 방송하는 시간 서비스를 위한 국가 센터를 설립했습니다.

    원자시계의 특성을 개선하기 위한 작업이 진행 중이며, 다양한 유형의 전자 장비를 원자시계와 동기화하는 시스템과 방법도 개선되고 있습니다. 또한 최근 일부 시계 브랜드에서는 원자시계의 정확한 시간 신호를 사용하여 무브먼트의 정확도를 자동으로 교정하는 기능을 갖춘 시계를 생산하기 시작했습니다. 그러나 실제로 모든 시계는 원자시계와 동기화될 수 있습니다.

    그러기 위해서는 시간이 어떻게 정해져 있는지 아는 것만으로도 충분하다. 특정 모델(예를 들어 우리는 Romanson 손목시계를 가져갔습니다. mir-chasov.ks.ua/shop/romanson- 크로노그래프), 원자시계(정확한 시간 서버/사이트)의 정확한 시간에 대한 데이터를 보유하고 있습니다. 간단히 말해서 손목시계 사용 설명서와 원자 시계가 필요합니다. 복잡한 것은 없습니다.

    그렇다면 동기화하는 방법은 손목시계원자시계로 정확한 시간을 맞추세요.

    1. 먼저 시계를 설정할 준비를 합니다. 아날로그 모델에서 시간은 크라운에 의해 설정되며 일반적으로 크라운을 케이스에서 특정 위치로 당겨야 합니다(Romanson의 경우 이는 가능한 세 가지 위치 중 두 번째 위치입니다). 디지털 시계의 경우 시간은 케이스에 있는 버튼 중 하나로 설정되며, 반대로 이 버튼을 눌러야 합니다. 화살표는 길을 따라서만 움직여야 한다는 점을 상기시켜 드리겠습니다.

    2. 다음에 따라 시간과 분을 설정하십시오. 현재 시간, 초침(또는 초침 카운터)이 0 위치(아날로그 다이얼의 표시 12 및 디지털 다이얼의 표시 0)에 도달할 때까지 시계를 작동시키십시오. 분침의 위치가 약간 바뀔 수 있지만 이는 정상적인 현상이므로 분을 다시 설정하겠습니다. 초침을 12로 설정한 후 시계를 중지합니다(Romanson에서는 크라운을 맨 끝 위치로 이동해야 함).

    3. 정확한 시간 서버로 이동합니다. 우리는 time.is 서비스의 데이터를 사용했습니다. 동시에 컴퓨터, 스마트폰 또는 태블릿의 시계가 얼마나 정확하게 실행되고 있는지 확인할 수 있습니다.

    4. 우리는 원자 시계 다이얼에서 다음 분이 바뀌고 초가 "0으로 재설정"되는 순간을 포착하고 시계를 1분 앞으로 설정합니다. 예를 들어 정확한 시간 서버가 12:35:00을 표시한 경우 이를 12:36으로 설정합니다. 그런 다음 원자 시계의 다음 초 "0"이 다가올 때까지 기다렸다가 시계를 시작합니다. 즉, 12:35:59에 Romanson의 왕관을 눌러 아래쪽 위치로 되돌려 메커니즘을 시작합니다. 그게 다입니다. 이제 우리 시계는 원자 시계와 동기화됩니다.

    그리고 결론적으로, 특히 초정밀 시간을 좋아하는 분들을 위해 실제 원자시계의 판독값과 정확한 시간 서버의 판독값 사이에는 항상 오류가 있음을 상기/명확하게 하겠습니다. 또한 서버 판독값과 이 서버에 액세스한 장치 화면의 시계 판독값 사이에 오류가 있습니다. 간단히 말해서, 신호가 서버에 도착하고 서버에서 통신 장치로 도착할 때까지(전송 시간은 서버의 원격성, 인터넷 채널의 대역폭 및 정체, 기타 여러 매개변수에 따라 달라짐) 기준 원자시계는 이미 발전할 것이고, 여러분의 시계는 몇 분의 1초 동안만 발전할 것이지만 뒤쳐질 것입니다. 따라서 위에서 설명한 시계 절차가 가장 완벽하지는 않지만 일상적인 수준에서는 특히 기계식 시계를 사용하는 경우 충분합니다. 이 기사에서는 World of Watches 회사 웹사이트의 자료를 사용했습니다.

    참조 시스템이란 좌표계와 서로 동기화된 다수의 고정된 동일한 시계가 연관되어 있는 참조 몸체를 의미한다는 점을 상기해 보겠습니다. 우리는 시계를 하나 또는 다른 주기적인 프로세스를 사용하는 모든 장치로 간주합니다.

    다양한 물리적 측정을 수행할 때 두 개 이상의 이벤트의 동시성 개념이 널리 사용됩니다. 예를 들어, 축을 따라 위치한 막대의 길이를 결정하려면 엑스참조 시스템 에게이 시스템(그림 7.1)을 기준으로 이동하려면 동시에, 즉 동시에 필요합니다. , 좌표값을 고정하세요 그리고 막대 끝:

    . (7.1)

    이를 위해서는 각 참조 시스템에 공간의 서로 다른 지점에 많은 시계가 있어야 합니다. 이 모든 시계는 동시에 동시에 실행되어야 합니다. 즉, 각 순간의 판독값이 동일해야 합니다.

    일부 신호의 도움을 통해서만 기준 시스템의 서로 다른 지점에 배치된 클럭을 동기화하는 것이 가능합니다. 이 목적에 적합한 가장 빠른 신호는 알려진 속도로 이동하는 빛 또는 무선 신호입니다. 와 함께.광 신호의 선택은 속도가 공간의 방향에 의존하지 않고 모든 관성 기준 시스템에서도 동일하다는 사실에 기인합니다.

    시계 동기화는 다음과 같이 수행할 수 있습니다. 점의 좌표계의 원점으로부터 0 지금 라디오에서 무선 신호가 전송됩니다. 이 신호가 해당 지점에 위치한 시계에 도달하는 순간 0 알려진 거리에서 에스, 시간을 표시하도록 설치됩니다.
    즉, 신호 전파 시간을 고려합니다. 이러한 작업의 결과로 특정 기준 프레임의 모든 시계는 매 순간 동기화됩니다.

    §8. 로렌츠 변환

    특수 상대성 이론의 두 번째 가정이 속도 덧셈의 고전 법칙과 양립할 수 없으므로 갈릴레오 변환과 양립할 수 없다는 사실은 이러한 변환을 포기할 필요성을 초래합니다. 하나의 관성 기준 시스템에서 다른 관성 기준 시스템으로 이동할 때 실제 변환 공식, 즉 두 관성 기준 시스템에서 동일한 이벤트의 좌표와 시간을 연결하는 공식을 찾는 문제가 발생합니다.

    아인슈타인은 자신이 공식화한 가정을 바탕으로 새로운 변환을 유도했습니다. 공식적으로, 그것은 마이컬슨 실험의 실패를 설명하려는 시도와 관련하여 로렌츠가 이전에 발견한 변형과 ​​일치했습니다. 그러나 아인슈타인만이 그 깊은 의미를 밝혔습니다.

    두 개의 관성 기준 시스템을 고려하십시오. 에게그리고 에게"(그림 5.1). 이전과 마찬가지로 시스템은 에게" 에게축 방향으로 엑스일정한 속도로 . 두 기준 시스템의 서로 다른 지점에 동일한 시계를 설치하고 동기화해 보겠습니다. 시스템 시계는 별도로 에게그리고 별도로 시스템 시계 에게". 잠시 시간을 내보자(
    ), 원점(점 0 그리고 0" ) 일치합니다.

    시스템 이후 에게"시스템에 상대적으로 움직인다 에게균일하게 좌표 사이의 관계 그리고
    갈릴리 변환에서처럼 여전히 시간에 선형적으로 의존해야 합니다.

    , (8.1)

    어디 - 일부 계수.

    시스템으로부터의 역전이에 대해서도 유사한 표현식을 작성할 수 있습니다. 에게시스템에 에게":

    . (8.2)

    계수를 결정하려면 초기 순간에 (
    ), 포인트가 있는 경우 0 그리고 0" 일치했다, 그 시점부터 0 축 방향으로 엑스가벼운 신호가 전송되었습니다. 잠시 후 , 시스템에서 측정됨 에게, 지점에 도달했습니다 좌표와 함께
    . 시스템 내 에게"이 지점에는 좌표가 있었습니다
    , 어디 - 시스템에서 측정된 시간 에게". 참고로 속도는 와 함께두 번째 가정 덕분에 동일합니다.

    좌표 대체 그리고 식 (8.1)과 (8.2)로 우리는 다음을 얻습니다.

    ,

    .

    이 등식의 우변과 좌변을 곱하고 다음으로 줄입니다.
    , 우리는 얻는다

    ,

    (8.4)

    따라서 좌표 사이의 관계는
    그리고 형식은 다음과 같습니다.

    (8.5)

    사이의 연관성을 찾으려면 그리고 다음을 수행해 보겠습니다. 식 (8.1)과 (8.2)에서 수량을 제외하면 그 후에 결정합니다. , 우리는 식 (8.4)을 고려하여 다음을 얻습니다.

    (8.6)

    좌표 그리고
    그리고 시스템의 고려된 움직임을 위해 에게그리고 에게"서로 동등하게 유지하십시오.

    따라서 로렌츠 변환이라고 하는 좌표 및 시간 변환의 형식은 다음과 같습니다.

    ,
    ,
    ,
    , (8.7)

    어디

    모든 관성 기준 시스템이 동일하기 때문에 역변환은 유사한 형태를 가져야 하지만 속도 부호의 변화를 고려합니다. V:

    ,
    ,
    ,
    . (8.8)

    로렌츠 변환 공식을 분석하면 여러 가지 중요한 결론을 도출할 수 있습니다.

    첫째, 로렌츠 변환의 특징은 다음과 같습니다.
    그들은 갈릴리 변환(5.1)으로 넘어갑니다. 이는 상대성 이론이 갈릴레오의 변환을 거부하는 것이 아니라, 이를 특수한 경우로 실제 변환에 포함한다는 것을 의미합니다.
    .

    둘째, 로렌츠 변환으로부터 다음이 성립됩니다.
    급진적 표현은 부정적이 되고 공식은 물리적 의미를 잃습니다. 이는 진공 상태에서 빛의 속도보다 빠른 속도로 물체를 움직이는 것이 불가능하다는 것을 의미합니다.

    셋째, 시간 변환 공식에는 공간과 시간의 불가분의 관계를 반영하는 공간 좌표가 포함됩니다.

    공부할 때 새로운 기술또는 프로그래밍 언어의 기본 개념은 본질적으로 항상 상대적으로 일상적이므로 초보자가 학습하는 것을 금방 방해합니다. 이 기사의 목적은 동적 모드에서 기본 그래픽을 개발하는 예를 사용하여 프로그래밍 연구에서 독자의 관심을 끌고 사로잡는 것입니다. 이 기사는 HTML5와 JavaScript의 기본 사항에 익숙해졌고 배열, 객체, 산술 연산 결과 등을 브라우저 콘솔에 출력할 때 페이지에서 정적 텍스트를 보는 데 지친 초보 개발자에게 적합합니다. 다음으로 가장 간단하면서도 언어를 이해하는데 유용한 애니메이션을 구현해보겠습니다. 가장 간단한 것을 만드는 과정을 고려해 봅시다 아날로그 시계 HTML5와 JavaScript를 사용합니다. 우리는 그래픽 프리미티브를 사용하여 시계를 그릴 것입니다. CSS 도구. 우리는 그래픽을 표시하기 위해 약간의 기하학을 기억할 것이고, 애니메이션 시계의 표시 논리를 구현하기 위해 약간의 수학을 기억할 것입니다. 그리고 일반적으로 우리는 지식의 엔트로피를 줄이려고 노력할 것입니다. 자바스크립트 언어. 개발을 위해서는 Notepad++ 또는 Sublime Text 3과 같은 텍스트 편집기가 필요합니다. 디지털 시계 구현 텍스트 에디터. (3개의 파일이 모두 같은 폴더에 있어야 합니다.)

    index.html- 메인 페이지
    clockscript.js- 운영 로직이 포함된 스크립트
    스타일.css- 스타일 파일

    먼저 현재 시간을 일반 시간으로 표시해 보겠습니다. div-.html 파일에서 차단합니다. 이렇게 작은 작업에도 함정이 있습니다. 태그의 onload 이벤트에 시계 표시 기능을 추가하면 을 선택하면 현재 시간이 줄에 표시되지만 고정된 상태로 유지됩니다. 그리고 div-현재 시간과 함께 문자열을 보낸 블록은 자체적으로 업데이트되지 않습니다.

    성취하다 자동 업데이트페이지 요소는 루트의 onload 속성에 할당된 익명 메서드로 시간 표시 기능을 래핑하여 래핑할 수 있습니다. 창 개체.

    한 가지 구현 옵션은 다음과 같습니다. 파일 index.html:

    시계 JavaScript 초안. 캔버스 작업:
    현재 시간이 됩니다

    파일 스타일.css:

    #시계( 글꼴 계열:Tahoma, sans-serif; 글꼴 크기:20px; 글꼴 무게:bold; 색상:#0000cc; )
    파일 clockscript.js:

    Window.onload = function())( window.setInterval(function())( var d = new Date(); document.getElementById("clock").innerHTML = d.toLocaleTimeString(); ) , 1000); )
    일을 정리해보자 clockscript.js:

    루트 Window 객체의 onload 이벤트에 바인딩하여 내부 JavaScript 코드를 실행합니다.

    Window.onload = function())(/*어쩌고 저쩌고*/)
    지정된 간격(밀리초 단위로 지정)으로 코드를 실행하는 Window 객체 메서드:

    Window.setInterval(function())(/*여기에는 1000밀리초마다 실행되어야 하는 함수로 래핑된 작업이 있습니다*/) , 1000);
    Date 객체는 다양한 날짜 및 시간 조작을 수행하는 데 사용됩니다. 생성자를 사용하여 인스턴스를 만들고 호출합니다. :

    Var d = new Date();
    우리는 ID로 DOM 객체를 찾습니다. 이것이 바로 우리가 시간을 출력하려는 ​​객체입니다. 이는 단락, 제목 또는 기타 요소일 수 있습니다. 나는 이것을 가지고있다 div-차단하다. ID로 요소를 검색한 후 innerHTML 속성을 사용하여 내부 마크업과 함께 요소의 전체 콘텐츠를 검색합니다. 그리고 거기에 메서드의 결과를 전달합니다. toLocaleTimeString()이는 시간의 형식화된 표현을 반환합니다.

    Document.getElementById("clock").innerHTML = d.toLocaleTimeString();
    이것이 당신이 얻어야 할 것입니다(시간은 매초 동적으로 변합니다):

    아날로그 시계 구현하기 이제부터 창의성의 캔버스 역할을 할 캔버스(HTML)를 사용하겠습니다.

    파일에서 캔버스를 보려면 index.html본문 내부에 다음 태그를 어딘가에 배치하여 크기를 즉시 정의해야 합니다.


    지금 파일에 있음 clockscript.js그리기를 시도하기 전에 Canvas 개체의 컨텍스트를 가져와야 합니다. 시계 표시 기능의 시작 부분에서 이 작업을 수행하겠습니다. 그런 다음 파일 clockscript.js다음과 같이 변경됩니다.

    함수 displayCanvas())( var canvasHTML = document.getElementById("myCanvas"); var contextHTML = canvasHTML.getContext("2d"); contextHTML.StrokeRect(0,0,canvasHTML.width, canvasHTML.height); //This 그래픽 프리미티브를 통해 모든 시계 논리 및 디스플레이 코드가 됩니다. return; ) window.onload = function())( window.setInterval(function())( var d = new Date(); document.getElementById("clock").innerHTML = d.toLocaleTimeString();displayCanvas(); ) , 1000); )
    글쎄, 수학을 기억하자? 특정 바늘의 분할과 미래 다이얼의 회전 각도 사이의 연결을 이해하는 것이 중요합니다.

    1초 동안 모든 손의 회전 각도:

    • 초침은 (1/60)*360 o = 6 o 각도만큼 회전합니다.
    • 분침은 (1/60)*6 o = 0.1 o 각도만큼 회전합니다.
    • 시침은 (1/60)*0.1 o ≒ 0.0017 o 각도만큼 회전합니다.
    첫 번째 문제:

    즉, 1초 안에 모든 화살표가 각각 해당 각도로 회전해야 합니다. 그리고 이것이 고려되지 않으면 우리가 디스플레이에서 겪게 될 첫 번째 함정은 추악한 애니메이션이 될 것입니다. 예를 들어, 시간이 19시 30분이면 시침은 정확히 19시를 가리키지만 실제 생활에서는 이미 20시 중간에 있어야 합니다. 마찬가지로, 분침의 부드러운 움직임이 더욱 기분 좋게 보일 것입니다. 글쎄, 대부분의 실제 기계식 시계에서처럼 초침이 개별적인 움직임으로 딸깍 소리를 내도록 하십시오. 문제 해결 방법: 현재 화살표의 회전 각도에 더 빠른 화살표의 회전 각도를 더하고 현재 화살표 각도의 점유율을 나타내는 계수를 곱합니다.

    구현:

    Var t_sec = 6*d.getSeconds(); //초 단위의 각도 결정 var t_min = 6*(d.getMinutes() + (1/60)*d.getSeconds()); //분 단위의 각도 결정 var t_hour = 30*(d.getHours() + (1/60)*d.getMinutes()); //시계의 각도 결정
    두 번째 문제:

    회전 반경 벡터(시계 바늘)의 각도는 양의 방향에서 시계 반대 방향으로 측정됩니다. 논리에서 이를 고려하지 않으면 시계를 시간에 맞춰 다시 설정하게 됩니다.

    그럼에도 불구하고 우리는 최상위 위치인 숫자 12부터 시, 분, 초를 계산합니다. 문제 해결: 공식에서 이를 +π/2(90o)의 이동으로 고려해야 합니다. 그리고 시계가 정확하게 시계방향으로 돌아가도록 각도 값 앞에 "-" 기호를 넣어주세요. 그리고 물론 프로그래밍 언어의 삼각 함수에 각도를 각도로 전달하는 것은 계수 "π/180o"를 곱하여 수행된다는 점을 고려하십시오.

    예를 들어 중고품을 사용한 구현:

    ContextHTML.moveTo(xCenterClock, yCenterClock); contextHTML.lineTo(xCenterClock + lengthSeconds*Math.cos(Math.PI/2 - t_sec*(Math.PI/180)), yCenterClock - lengthSeconds*Math.sin(Math.PI/2 - t_sec*(Math.PI/ 180)));
    세 번째 문제:

    다이얼 패턴을 표시할 때 어떻게든 시계 반대쪽 패턴을 강조 표시해야 합니다. 초, 분 단위로 총 60장의 사진이 있습니다. 12 - 몇 시간 동안. 이 12개는 어떻게든 다른 모든 것보다 눈에 띌 것입니다. 또한 디지털화의 대칭성은 숫자의 너비에 따라 달라집니다. 분명히 숫자 10, 11, 12는 1, 2, 3 등보다 넓습니다. 우리는 이것을 잊어서는 안됩니다.

    문제 해결 방법 및 다이얼 디지털화 옵션:

    For(var th = 1; th