C语言 -- 定时关机程序

<strong><span style="font-size:14px;">C语言  --   定时关机程序</span></strong>
<strong></strong><span style="font-size:14px;"></span>
<strong><span style="font-size:14px;">特别注意:</span></strong>
<strong><span style="font-size:14px;"> 1.从接收到的char * 类型转换为 int ,一定不能使用(int)这种方式来转换,要用atoi()</span></strong>
<strong><span style="font-size:14px;">   使用方式:原型: int atoi(const char *nptr);</span></strong>
<strong><span style="font-size:14px;">2. 多个字符串合并,使用sprintf()</span></strong>
<strong><span style="font-size:14px;">   使用方式:sprintf(char *buffer,const char * format[,argument,...])</span></strong>
<strong><span style="font-size:14px;">   以下有使用方式</span></strong>
<strong><span style="font-size:14px;">
</span></strong>

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
#include <time.h>

int isNumber(char *a);
void getCurrentDate(int seconds);  

int main(){
	printf("欢迎进入定时关机系统!\n");
	getCurrentDate(0);

	char str[2];
	char flag = 1;
	while(flag){
		printf("输入A定时关机,输入C取消定时关机\n");
		gets(str);
		if(strcmp(str,"a")==0) {
			printf("请输入时间的秒数:\n");
			char seconds[10];
			while(1){
				gets(seconds);
				if(isNumber((char*)seconds))
					break;
				else{
					printf("输入的秒数不正确,请重新给输入!\n");
					continue;
				}
			}
			int temp_seconds = atoi(seconds);
			getCurrentDate(temp_seconds);
			char shutdown[50] = "shutdown -s -t ";
			strcat(shutdown,seconds);
			system(shutdown);
			system("pause");
			break;
		} else if(strcmp(str,"C")==0 || strcmp(str,"c")==0) {
			system("shutdown -a");
			printf("已经取消定时关机\n");
			system("pause");
			break;
		}else{
			printf("输入的值不正确,请重新输入!\n");
			flag=1;
		}
	}

	return 0;
}

//判断字符串是否是数字
int isNumber(char *a){
	char flag=1;
	int len = strlen(a);
	for(int i=0;i<len;i++){
		if(isdigit(a[i])==0){
			flag = 0;
			break;
		}
	}
	if(flag)
		return 1;
	else
		return 0;
}

//获取系统当前时间
void getCurrentDate(int seconds){
	time_t rawtime;
	struct tm *timeinfo,*timeinfo2;
	time(&rawtime);
	if(seconds > 0){
		rawtime += seconds;
	}
	timeinfo = localtime(&rawtime);
	int year = timeinfo->tm_year + 1900;
	int month = timeinfo->tm_mon+1;
	int day = timeinfo->tm_mday;
	int hour = timeinfo->tm_hour;
	int min = timeinfo->tm_min;
	int secs = timeinfo->tm_sec; 

	char *str = (char*)malloc(sizeof(char)*100);
	memset(str,0,100);
	//多个值合并字符串
	if(seconds > 0){
		sprintf(str,"在%d年%d月%d日 %d时%d分%d秒后关机...",year,month,day,hour,min,secs);
	}else{
		sprintf(str,"现在时间是:%d年%d月%d日 %d时%d分%d秒 ",year,month,day,hour,min,secs);
	}
	puts(str);
	free(str);
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-12-19 03:14:31

C语言 -- 定时关机程序的相关文章

MFC定时关机程序的实现2-添加启动项到注册表

虽然上一篇实现了的定时关机,但是还不够完善,比如开机自动启动,然后按照配置的时间定时关机,并最小化到任务栏. 先来说开机启动怎么实现,开机启动实现的方法有好几种,比如直接在开始菜单启动项里添加一个程序的快捷方式,路径为 C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup\ 不过这个路径不同的电脑可能不一样,因为这个路径可以改变,比如说改到D盘 也可以直接写入注册表,这个比较方便,这个开机启动项在注册表中的路径是 HKEY_CU

MFC定时关机程序的实现1

写个定时关机程序自用,界面简单实用,最终界面如下 第一步,新建一个MFC对话框应用程序,拖几个控件过来, 界面如下: 然后给下拉列表框,复选按钮绑定变量,以方便进行操作. CComboBox m_com_hour; CComboBox m_com_minute; CComboBox m_com_second; 第二步,先实现简单关机功能,不通过文件读写进行关键.在选择过时间后,确定关机后按时关机. 1,给下拉列表框添加更改事件,直接右键控件->选择添加事件处理程序,选择CBN_SELCHANGE

用Win32写的定时关机程序

由于本人记性不太好,晚上经常忘记关电脑,白白浪费了很多的电.在网上也找了一些定时关机的软件,想到最近自己也在学习VC++,就想自己写一个定时关机的小程序,正好也可以检验自己所学的东西. 程序源码下载地址:点击下载 先来看看效果图: 写的比较简陋,但是只要能实现功能就好了. 写Win32应用程序首先要有WinMain函数: int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR    lpCmdLine

C++教程:C语言定时关机小程序

今天给大家带俩一个C语言小程序的分享,需要实际应用的作用不大,但是,绝对是对你有帮助的!今后小编都会定期发布一些:一个C语言小程序源码+注释+解答,来丰富大家的知识! #include<stdio.h> #include<string.h> #include<stdlid.h> void main() { char cmd[20]="shutdown -s -t "; char t[5]="0"; int c; system(&q

C# 简单的定时关机

1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using System.Data; 5 using System.Drawing; 6 using System.Linq; 7 using System.Text; 8 using System.Windows.Forms; 9 10 namespace AutoCloseComputer 11 { 12 public pa

利用DOS批处理实现定时关机操作

10月1放假回来,寝室晚上10:30就停电了,最无法让人理解的是第二天早上8:00才来电.原来晚上电脑都是不关机的,开着WiFi一直到天亮,可是现在不行了,电脑如果一直开着第二天早上起来电脑肯定没电,于是我就想让它定时关机.之前我一直用猎豹WiFi实现这个功能,不但能开WiFi,还有定时关机的功能.可是自从升级到Windows 10 的最新版后,发现猎豹WiFi已经没多大用了,况且有时候猎豹WiFi对校园网的支持还时好时坏,还是系统自带的这个比较好.于是我就把猎豹WiFi卸载了,又不想重新装回去

C# 定时关机 倒计时

有段时间要用定时关机,想到了一些软件,还要安装太麻烦了. 准备自己写一个,搜了下代码不清不楚,于是总结资料,做了个关机 ------------------------------------------------------------------------------------- 发到首页要满150字,就多写点废话唠唠嗑吧. 本人2011年在培训学校学过1年半编程,学费3万多,从C,Html,Js,Jquery,Java,SQL,Oracel,Mysql,C#,Asp.net 全部讲过

Mac定时关机、重启、休眠命令行

由于一些原因(程序员都懂得),需要在不上班的时间去连公司电脑来做一些事.所以公司电脑很少关机.但是在没多天没有关机以后电脑会变得很卡.所以现在每天早上去公司的第一件事情就是先重启一下电脑.人工重启,太不符合程序员的作风了.于是,就想到了用命令行定时关机重启. 命令非常简单: 关机: sudo shutdown -h yymmddhhmm 重启: sudo shutdown -r yymmddhhmm 休眠: sudo shutdown -s yymmddhhmm 其中yymmddhhmm是指的某

visual c#设计的多功能关机程序

Visual C# 设计多功能关机程序 许多软件都有自动关机功能, 特别是在长时间 下载 的时候, 这个功能可是使你不用以守候在计算机前面, 而电脑却能按照 您事先的设定自动关闭.现在我们用 visual C# 来编写一个多功能的关机程序.该程序具有:定时关机.倒计时关机.关机 提醒.系统信息获取等四项功能 , 可设定关机时间精确到秒.并且让你很快掌握 Visual C# 中对 API 的操作程序. 一 . 设计关闭 Windows 窗体 界面的设计 新建一个标准工程,向工程中增加一个 Wind