linux c显示日期,Linux C判断日期格式是否合法

#include // strlen() , strncpy()

#include // isdigit()

#include // atoi()

#include

/*有效格式

2013-01-01 01:01:01

2013/11/11 11:11:11

*/

int main()

{

int isValidDate(const char* str)

{

// 检查日期长度

const int LEN = 19; // 有效格式长度都为19

int len = strlen(str);

if(LEN != len)

return 0;

// 检查年份是否在[1900, 2099]

char year_str[5] = { 0 };

strncpy(year_str, str, 4);

int year = atoi(year_str); // 年份转换为数字

if(year < 1900 || 2099 < year)

return 0;

// 检查月份和日期还有时间是否合乎逻辑

char month_str[3] = { 0 }, day_str[3] = { 0 } , hour_str[3] = { 0 } , minute_str[3] = { 0 }, second_str[3] = { 0 } ;

strncpy(month_str, str + 5, 2); // 抽取月份字符串

strncpy(day_str, str + 8, 2); // 抽取日期字符串

strncpy(hour_str, str + 11, 2); // 抽取小时字符串

strncpy(minute_str, str + 14, 2); // 抽取分钟字符串

strncpy(second_str, str + 17, 2); // 抽取秒钟字符串

int month = atoi(month_str); // 月份转换为数字

int day = atoi(day_str); // 日期转换为数字

int hour = atoi(hour_str); // 小时转换为数字

int minute = atoi(minute_str); // 分钟转换为数字

int second = atoi(second_str); // 秒钟转换为数字

if( (hour > 23 || hour < 0) || (minute > 59 || minute < 0) || (second > 59 || second < 0) ) // 判断小时,分钟,秒钟是否合法

return 0;

switch(month)

{

case 1: case 3: case 5: case 7: case 8: case 10: case 12: /*31天*/

return 0 < day && day < 32;

case 4: case 6: case 9: case 11: /*30天*/

return 0 < day && day < 31;

case 2: /*2月份比较特殊,闰年: 29天,平年: 28天*/

{

int leap = (0 == year % 4 && 0 != year % 100) || (0 == year % 400);

return (1 == leap && (0 < day && day < 30)) || (0 == leap && (0 < day && day < 29));

}

default: return 0;

}

}

const char* str1 = "2013-10-10 24:10:10";

const char* str2 = "2014-12-01 23:60:23";

const char* str3 = "2013/02/31 01:11:53";

const char* str4 = "2100/11/11 01:11:11";

const char* str5 = "2013/11/11 01:11:11";

const char* str6 = "209905-9";

const char* str7 = "20000229";

printf(isValidDate(str1) ? "valid\n" : "invalid\n");

printf(isValidDate(str2) ? "valid\n" : "invalid\n");

printf(isValidDate(str3) ? "valid\n" : "invalid\n");

printf(isValidDate(str4) ? "valid\n" : "invalid\n");

printf(isValidDate(str5) ? "valid\n" : "invalid\n");

printf(isValidDate(str6) ? "valid\n" : "invalid\n");

printf(isValidDate(str7) ? "valid\n" : "invalid\n");

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/261994.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JSP中Listener和Timer的运用

其他的JSP文章: 在JSP中使用Bean自动属性填充机制 JSP列出服务器环境变量 JSP的errorPage指令异常转向错误页的实现机制及应用 Jsp利用404错误页进行URL重写 有的时候需要在JSP运行时&#xff0c;定时执行一些程序&#xff0c;比如说统计流量、更新缓存数据等&#xff0c;通常要…

第05篇:C#星夜拾遗之使用数据库

前言C#常用来开发数据管理类软件&#xff0c;所以学会在C#程序中使用数据库是非常有必要的。目前微软的两个常用数据库软件分别是Access和Sql Server。读者可以自行了解这两种数据库的优劣点&#xff0c;笔者不做过多说明。这两种数据库也是在做开发时最常用的。C#访问数据库是…

linux sed删除指定行_shell三剑客之sed!

背景sed(Stream Editor 流编辑器)&#xff0c;作为三剑客的一份子&#xff0c;主要的功能有增删改查。为什么称之为“流”编辑器呢&#xff1f;大家知道&#xff1a;在Linux文件系统中&#xff0c;一切都可以作为文件来处理。比如&#xff1a;配置文件、设备文件、日志等等。se…

Hadoop源码解析之: TextInputFormat如何处理跨split的行

Hadoop源码解析之: TextInputFormat如何处理跨split的行转载于:https://blog.51cto.com/taikongren/1742425

linux cpu使用率1200%,linux下用top命令查看cpu利用率超过100%

今天跑了一个非常耗时的批量插入操作。。通过top命令查看cpu以及内存的使用的时候&#xff0c;cpu的时候查过了120%。。以前没注意。。通过在top的情况下按大键盘的1&#xff0c;查看的cpu的核数为4核。通过网上查找&#xff0c;发现top命令显示的是你的程序占用的cpu的总数&am…

Js-载入时选中文

<form action""> <input type"text" name"textRange" size"50" value"这是豪情的blog&#xff0c;这里是技术的海洋&#xff0c;是人生的第一起跑线~&#xff01;" /><br /> <textarea name"your…

FileUpload时用Javascript检查扩展名是否有效

通用的检查方法。首先定义好有效的文件扩展名&#xff0c;存放在阵列中。 在JavaScript获取FileUpload控件的文件路径&#xff0c;并取得路径中的文件扩展名。再与阵列中的扩展名比较&#xff0c;如果存在&#xff0c;说明上传的文件是有效的&#xff0c;反之无效。 <asp:Fi…

python爬虫豆瓣250_python爬虫二 爬取豆瓣Top250上

The Dormouses storyOnce upon a time there were three little sisters; and their names were Elsie, Lacie and Tillie; and they lived at the bottom of a well.... """ 使用BeautifulSoup解析这段代码,能够得到一个 BeautifulSoup 的对象,并能按照标准的缩…

【02】把 Elasticsearch 当数据库使:过滤和排序

使用 https://github.com/taowen/es-monitor 可以用 SQL 进行 elasticsearch 的查询。本章介绍简单的文档过滤条件 exchangenyse SQL $ cat << EOF | ./es_query.py http://127.0.0.1:9200 select * from symbol where exchangenyse limit 1 EOF {"sector": &q…

登录页面跳出框架的JS

框架页面下跳转到登录页面&#xff0c;会遇到登录页面仍然在框架中 <script type"text/javascript">if (top.location ! self.location) {top.locationself.location;}</script> 这个js就能解决问题了&#xff01;转载于:https://www.cnblogs.com/longxi…

python dialect='excel'是什么意思_python读取和生成excel文件

今天来看一下如何使用python处理excel文件&#xff0c;处理excel文件是在工作中经常用到的&#xff0c;python为我们考虑到了这一点&#xff0c;python中本身就自带csv模块... 今天来看一下如何使用python处理excel文件&#xff0c;处理excel文件是在工作中经常用到的&#xff…

linux运维工程师 知乎,运维面试一般问些什么问题 知乎

面试基本上都离不开以下这些问题&#xff1a;1.请用最简洁的语言描述您从前的工作经历和工作成果。2.您认为此工作岗位应当具备哪些素质&#xff1f;3.您平时习惯于单独工作还是团队工作&#xff1f;4.您对原来的单位和上司的看法如何&#xff1f;5.您如何描述自己的个性&#…

[ javascript ] 司徒正美的fadeOut-fadeIn效果!

首先感谢司徒正美的文章! 在司徒大神的博客看到一个简单的渐入渐出的效果。全然採用js实现。 例如以下&#xff1a; <!doctype html> <html dir"ltr" lang"zh-CN" ><head><meta charset"utf-8"/><meta http-equiv&qu…

玩转博客园的5个小技巧

转载自:http://www.cnblogs.com/lloydsheng/archive/2010/05/17/1737267.html 写博客也有几年了&#xff0c;现在能找到的第一篇博文发布时间是2007年11月11日&#xff0c;那还是在百度空间里面的&#xff0c;其实更早的是在csai&#xff0c;不过帐号&#xff0c;密码&#xff…

业务层勿用继承,不要为了方便舍弃了性能。TʌT不好意思我错了

很多人喜欢在action 或service或dao层继承一些公共的东西 比如jdbc或一些其他的东西 我看过一些小源码也经常这样 废话不多说 直入正题 直入正题前先科普一下TheardLocal类 懂的人直接跳 线程不安全指的是一个带有类成员变量&#xff08;状态&#xff09;的类的单列被多个线程访…

python棋盘最短路径_【leetcode】64. Minimum Path Sum 棋盘最短路径

1. 题目 Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right which minimizes the sum of all numbers along its path. Note: You can only move either down or right at any point in time. 2. 思路 从右下往左上移动&#x…

linux kvm安装win7,ubuntu14.04 使用kvm安装win7系统

办公电脑从win7换成ubuntu已经有几个月了..环境:ubuntu 14.04kvm 2.0.0需要的各种软件也都安装的差不多了.. 迅雷 qq office vmware 等 这些我常用的软件也都安装上了..我的电脑配置也算可以了(thinkpad E 系列 i5 8G内存 )但是vmware这个东西在ubuntu上的表现不是那么让人满意…

Python 18.4 aiohttp

aiohttpasyncio可以实现单线程并发IO操作。如果仅用在客户端&#xff0c;发挥的威力不大。如果把asyncio用在服务器端&#xff0c;例如Web服务器&#xff0c;由于HTTP连接就是IO操作&#xff0c;因此可以用单线程coroutine实现多用户的高并发支持。asyncio实现了TCP、UDP、SSL等…

python函数和模块有什么特性_python-函数包和模块

python函数的作用&#xff1a; 在Python代码段中如果有一段几十行的代码&#xff0c;需要多次重复使用这几十行代码时&#xff0c;为了提高代码的可用性&#xff0c;将代码段放进函数体内&#xff0c;以后在使用中直接调用该函数模块即可&#xff0c;函数是一个独立的函数体或是…

hibernate继承映射之每个具体类一张表

数据模型 表person 表student 表worker 对象模型 Person private String id;private String name;private int age;private String sex; Student extends Person private String school; Worker extends Person private String factory; xml配置&#xff1a; <?xml version…