/***********************************************************
* ////////현재시각표시//////////
*
* 아 진짜 고생 많이했다 ㅋㅋㅋㅋ
* 숫자 크기 정하느라 황금비율 찾아봤다능... ;;( 1 : 1.618 이니까 5:8 이라능...)
* 숫자 디자인 한참 고민했다능... ;;
* 숫자 띄우느라 애먹었다능... ;;
* 내 노력을 알아달라능...ㅡ,.ㅜ;;
* By 컴공의 자랑
***********************************************************/
#include <iostream>
#include <time.h>
#include <stdio.h>
#include <conio.h>
#include <windows.h>
#include "now_time.h"
using namespace std;
typedef enum { NOCURSOR, SOLIDCURSOR, NORMALCURSOR } CURSOR_TYPE;
extern int ah;
extern int am;
extern int as;
void gotoxy(int x, int y)
{
COORD Cur;
Cur.X=x;
Cur.Y=y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),Cur);
}
void setcursortype(CURSOR_TYPE c)
{
CONSOLE_CURSOR_INFO CurInfo;
switch (c) {
case NOCURSOR:
CurInfo.dwSize=1;
CurInfo.bVisible=FALSE;
break;
case SOLIDCURSOR:
CurInfo.dwSize=100;
CurInfo.bVisible=TRUE;
break;
case NORMALCURSOR:
CurInfo.dwSize=20;
CurInfo.bVisible=TRUE;
break;
}
SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE),&CurInfo);
}
void now_time::print_now_time()
{
char arr[10][8][16]={ // digit 노가다
{{" ■■■ "},
{"■ ■"},
{"■ ■"},
{"■ ■"}, // 디자인 수정의 편의성을 위해 세로로 길게 씀.
{"■ ■"},
{"■ ■"},
{"■ ■"},
{" ■■■ "}},
{{" ■ "},
{" ■■ "},
{"■ ■ "},
{" ■ "},
{" ■ "},
{" ■ "},
{" ■ "},
{"■■■■■"}},
{{" ■■■ "},
{"■ ■"},
{"■ ■"},
{" ■"},
{" ■ "},
{" ■ "},
{" ■ "},
{"■■■■■"}},
{{" ■■■ "},
{"■ ■"},
{" ■"},
{" ■■ "},
{" ■"},
{" ■"},
{"■ ■"},
{" ■■■ "}},
{{" ■ "},
{" ■■ "},
{" ■ ■ "},
{"■ ■ "},
{"■■■■■"},
{" ■ "},
{" ■ "},
{" ■ "}},
{{"■■■■■"},
{"■ "},
{"■ "},
{" ■■■ "},
{" ■"},
{"■ ■"},
{"■ ■"},
{" ■■■ "}},
{{" ■■■ "},
{"■ "},
{"■ "},
{"■■■■ "},
{"■ ■"},
{"■ ■"},
{"■ ■"},
{" ■■■ "}},
{{"■■■■■"},
{"■ ■"},
{" ■"},
{" ■ "},
{" ■ "},
{" ■ "},
{" ■ "},
{" ■ "}},
{{" ■■■ "},
{"■ ■"},
{"■ ■"},
{" ■■■ "},
{"■ ■"},
{"■ ■"},
{"■ ■"},
{" ■■■ "}},
{{" ■■■ "},
{"■ ■"},
{"■ ■"},
{" ■■■■"},
{" ■"},
{" ■"},
{" ■"},
{" ■■■ "}
}
};
setcursortype(NOCURSOR); //커서를 숨긴다.
time_t a;
tm* b;
int h,m,s;
while(1){
char key;
if(kbhit())
{
key=getch();
if(key=='1')
break;
}
system("cls");
gotoxy(24,2); // 땡땡( : ) 입력
cout<<"□";
gotoxy(24,5);
cout<<"□";
gotoxy(52,2);
cout<<"□";
gotoxy(52,5);
cout<<"□";
time(&a); //시스템 시간 받아오기
b=localtime(&a);
h = b->tm_hour; //시
m = b->tm_min; //분
s = b->tm_sec; //초
if((ah == h)&&(am==m)&&(as==s))
{
printf("\a\a\a");
}
int h10 = h/10; //시,분,초 각각의 10, 1의 자리 구하기
int h1 = h%10;
int m10 = m/10;
int m1 = m%10;
int s10 = s/10;
int s1 = s%10;
for(int x=0;x<8;x++){ //위에서부터 한줄씩, 총 6줄 1초마다 출력
gotoxy(0,x);
cout<<arr[h10][x];
gotoxy(12,x);
cout<<arr[h1][x];
gotoxy(28,x);
cout<<arr[m10][x];
gotoxy(40,x);
cout<<arr[m1][x];
gotoxy(56,x);
cout<<arr[s10][x];
gotoxy(68,x);
cout<<arr[s1][x];
}
Sleep(1000); //요게 1초씩 대기함 ( 말그대로 sleep!!. 밀리세컨드 이기 때문에 1000이라 씀)
}
}