规范日期的输入

规范日期的输入

#include <stdio.h>
#include<conio.h>

void guifanrq(char time[])
{
	int zs = 0;
	char gf;
	while(1)
	{
		gf = getch();
		if(gf == '\b')
		{
			if(zs > 0)
			{
				printf("\b \b");
				zs--;
			}
			if(zs == 4 || zs == 7)
			{
				printf("\b \b");
				zs--;
			}

		}
		if(gf >= '0' && gf <= '9')
		{
			if(zs >= 10)
				continue;
			//月规范
			if(zs == 5)
				if(gf > '1')
				{
					time[zs] = '1';
					printf("1");
					zs++;
					continue;
				}
			if(zs == 6)
			{
				if(time[5] == '0')
					if(gf == '0')
					{
						time[zs] = '1';
						printf("1");
						zs++;
					}
					else
					{
						time[zs] = gf;
						printf("%c",gf);
						zs++;
					}
				else
					if(gf > '2')
					{
						time[zs] = '2';
						printf("2");
						zs++;
					}
					else
					{
						time[zs] = gf;
						printf("%c",gf);
						zs++;
					}
				printf("/");
				time[zs] = '/';
				zs++;
				continue;
			}
			//日规范
			if(zs == 8)
				if(time[5] == '0' && time[6] == '2')
				{
					if(gf > '2')
					{
						time[zs] = '2';
						printf("2");
						zs++;
						continue;
					}
				}
				else
					if(gf > '3')
					{
						time[zs] = '3';
						printf("3");
						zs++;
						continue;
					}
			if(zs == 9)
			{
				if(time[5] == '0' && time[6] == '2' && time[8] == '2')
				{
					if(((time[2] -'0') *10 + (time[3]- '0')) %4 != 0 || (time[2] == '0' && time[3] == '0'))
						if(gf > '8')
						{
							time[zs] = '8';
							printf("8");
							zs++;
							continue;
						}
				}
				else
					if(time[8] == '0')
						if(gf == '0')
						{
							time[zs] = '1';
							printf("1");
							zs++;
							continue;
						}
					if(time[8] == '3')
						if(time[5] == '0')
							if(time[6] == '1' || time[6] == '3' || time[6] == '5' || time[6] == '7' || time[6] == '8')
							{
								if(gf > '1')
								{
									time[zs] = '1';
									printf("1");
									zs++;
									continue;
								}
							}
							else
							{
								if(gf > '0')
								{
									time[zs] = '0';
									printf("0");
									zs++;
									continue;
								}
							}
						else
							if(time[6] == '1')
							{
								if(gf > '0')
								{
									time[zs] = '0';
									printf("0");
									zs++;
									continue;
								}
							}
							else
							{
								if(gf > '1')
								{
									time[zs] = '1';
									printf("1");
									zs++;
									continue;
								}
							}
			}
			time[zs] = gf;
			printf("%c",gf);
			zs++;
			if(zs == 4 || zs == 7)
			{
				printf("/");
				time[zs] = '/';
				zs++;
			}
		}
		else
			if(gf == 13 && zs >= 10)
				break;
	}
	time[zs] = 0;
}

main()
{
	char time[11];
	while(1)
	{
		guifanrq(time);
		printf("\n||	%s	||\n",time);
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值