#include<iostream>
#include<windows.h>
#include<conio.h>
#include<vector>

using namespace std;

struct node{
	string s;
	int now;
};

string intime(){
	string s = "00:00:00";
	vector <node> last;
	last.clear();
	int now = 7;
	last.push_back({s,now});
	int i = 0;
	while(true){
		system("cls");
		cout << s << endl;
		for(int k = 1;k<=now;k++){
			cout << " ";
		} 
		cout << "^" << endl;
		char c = _getch();
		if(c == 13)	return s;
		if(c == 8){
			if(i==0){
				continue;
			}
			i--;
			s = last[i].s;
			if(last[i].now != -1)	now = last[i].now;
			continue;
		}
		if(c == 17)	exit(0);
		if('0' <= c && c <= '9'){
			s[now] = c;
			now--;
			if(s[now] == ':')	now--;
		}
		if(last[i].s != s){
			last.push_back({s,now});
			i++;
		}
		if(now < 0)	now = 0;
	}
}

int s2i(string s){
	int ans = 0;
	int j = 1;
	for(int i = s.size()-1;i>=0;i--){
		ans+=(s[i]-'0')*j;
		j*=10;
	}
	return ans;
}

void printTimeText(int hours, int minutes, int seconds) {
    vector<vector<string>> largeNumbers = {
        { // #
            "#########",
            "#       #",
            "#       #",
            "#       #",
            "#       #",
            "#       #",
            "#########"
        },
        { // #
            "#       ",
            "#       ",
            "#       ",
            "#       ",
            "#       ",
            "#       ",
            "#       "
        },
        { // #
            "#########",
            "        #",
            "        #",
            "#########",
            "#        ",
            "#        ",
            "#########"
        },
        { // #
            "#########",
            "        #",
            "        #",
            "#########",
            "        #",
            "        #",
            "#########"
        },
        { // #
            "#       #",
            "#       #",
            "#       #",
            "#########",
            "        #",
            "        #",
            "        #"
        },
        { // #
            "#########",
            "#        ",
            "#        ",
            "#########",
            "        #",
            "        #",
            "#########"
        },
        { // #
            "#########",
            "#        ",
            "#        ",
            "#########",
            "#       #",
            "#       #",
            "#########"
        },
        { // #
            "#########",
            "        #",
            "        #",
            "        #",
            "        #",
            "        #",
            "        #"
        },
        { // #
            "#########",
            "#       #",
            "#       #",
            "#########",
            "#       #",
            "#       #",
            "#########"
        },
        { // #
            "#########",
            "#       #",
            "#       #",
            "#########",
            "        #",
            "        #",
            "#########"
        }
    };
    
    vector<int> h_digits, m_digits, s_digits;
    
    if (hours == 0) {
        h_digits.push_back(0);
    } else {
        int temp = hours;
        while (temp > 0) {
            h_digits.insert(h_digits.begin(), temp % 10);
            temp /= 10;
        }
    }
    
    if (minutes < 10) {
        m_digits.push_back(0);
        m_digits.push_back(minutes);
    } else {
        m_digits.push_back(minutes / 10);
        m_digits.push_back(minutes % 10);
    }
    
    if (seconds < 10) {
        s_digits.push_back(0);
        s_digits.push_back(seconds);
    } else {
        s_digits.push_back(seconds / 10);
        s_digits.push_back(seconds % 10);
    }
    
    for (int row = 0; row < 6; row++) {
        for (int i = 0; i < h_digits.size(); i++) {
        	if(i == 0)	cout << "  ";
            cout << largeNumbers[h_digits[i]][row];
            if (i < h_digits.size() - 1) {
                cout << " ";
            }
        }
        cout << "   ";
        
        for (int i = 0; i < m_digits.size(); i++) {
        	if(i == 0)	cout << "  ";
            cout << largeNumbers[m_digits[i]][row];
            if (i < m_digits.size() - 1) {
                cout << " ";
            }
        }
        cout << "   ";
        
        for (int i = 0; i < s_digits.size(); i++) {
        	if(i == 0)	cout << "  ";
            cout << largeNumbers[s_digits[i]][row];
            if (i < s_digits.size() - 1) {
                cout << " ";
            }
        }
        cout << endl;
    }
    
    for (int i = 0; i < h_digits.size(); i++) {
    	if(i == 0)	cout << "时";
        cout << largeNumbers[h_digits[i]][6];
        if (i < h_digits.size() - 1) {
            cout << " ";
        }
    }
    cout << "   ";
    
    for (int i = 0; i < m_digits.size(); i++) {
    	if(i == 0)	cout << "分";
        cout << largeNumbers[m_digits[i]][6];
        if (i < m_digits.size() - 1) {
            cout << " ";
        }
    }
    cout << "   ";
    
    for (int i = 0; i < s_digits.size(); i++) {
    	if(i == 0)	cout << "秒";
        cout << largeNumbers[s_digits[i]][6];
        if (i < s_digits.size() - 1) {
            cout << " ";
        }
    }
    cout << endl;
}


void setRGBColor(int r, int g, int b) {
    cout << "\033[38;2;" << r << ";" << g << ";" << b << "m";
}

void resetColor() {
    cout << "\033[0m";
}

void setE74C3CColor() {
    setRGBColor(243,76,60);
}

int main(){
	cout << "TengYve Technology Dev" << endl;
    string art = "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.......@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@..-+.@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@..#@@.-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@..@@@@..@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@...@@@@@@.-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@..=@@@@@@@..@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+.+@@@@@@@@@.@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@..@@@@@@@@@@..@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@..@@@@@@@@@@@.#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.-@@@@@@@@@@@:.@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.-@@@@@@@@@@@@..@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.@@@@@@@@@@@@@@.@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@=.@@@@@@@@@@@@@@=.@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@..@@@@@@@@@@@@@@@-.@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@..@@@@@@@@@@@@@@@@@.@@@@@@@@@@@@@@#...@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@..@@@@@@@@@@@@@@@@@@@................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@..@@@@@@@@@@@@@@@@@@@@@@@@@@@@@...@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.-@@@@@@@@@@@@@@@@@@@@@@@@@@@...@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@:...@@@@@@@@@@@@@@@@@@@@@@@@@@@@..:@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@=...@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+..=@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@...@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*....#....#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@..@@@@@*-......-:@@@@@@@@@@@@@@@@@@@@%....#@@@@@@@:....=@@@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@..@@@...-@@@@@@@@@@:.................%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@..*..:@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@@...@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n";
    cout << art;
    Sleep(3000);
	system("cls") ;
	string st;
	st = intime();
	string sh = "",sm = "",ss = "";
	int f = 1;
	for(int i = 0;i<st.size();i++){
		if(st[i] == ':'){
			f++;
			continue;
		}
		if(f == 1){
			sh += st[i];
		}
		else if(f == 2){
			sm += st[i];
		}
		else{
			ss += st[i];
		}
	}
	int h,m,s;
	h = s2i(sh);
	m = s2i(sm);
	s = s2i(ss);
	int alls = h*60*60 + m*60 + s;
	resetColor();
	for(int i = alls;i>=1;i--){
		system("cls");
		int hours = i / 3600;
        int minutes = (i % 3600) / 60;
        int seconds = i % 60; 
        resetColor();
        printTimeText(hours,minutes,seconds);
        if(i <= 10)	setE74C3CColor(); 
        cout << "\n\n剩余秒数: " << i << " 秒" << endl;
        printf("剩余时间: %.2d:%.2d:%.2d",hours,minutes,seconds);
        Sleep(1000);
	}
	resetColor();
	system("cls");
	cout << "时间到!" << endl;
}

DevC++可用

1 条评论

  • @ 2025-11-28 22:58:08

    这个不算什么大项目,就不用以前那种开源锚点的形式了

    你想干啥干啥,CV拿走都行

    • 1