using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms; namespace ExtractTime
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} private void button1_Click(object sender, EventArgs e)
{
//--
string[] strlist = {"年","月","日" };
string strs = "日期: 2018年07月31日"; //xx年xx月xx日
strs = textBox1.Text; var test = ff(strs);
string[] temp = test.Split(new char[] { '#'}, StringSplitOptions.RemoveEmptyEntries); strs = strs.Replace(" ",""); //日期:2018年07月31日
var cut = "";bool Mouthbl = false;
//查询第一个年字所在位置
for (int i=;i<strs.Length;i++)
{
cut = strs.Substring(i,); //截取一个字符
if (cut.Contains("年")) //当前字符是年字
{
//查找月字
for (int ii = i; ii < strs.Length; ii++)
{
cut = strs.Substring(ii, ); //截取一个字符
if (cut.Contains("月")) //当前字符是月字
{
//包含月字
Mouthbl = true;
var x = i;
var y = ii;
if (y-x<=&& y - x > ) //年月,a年a月,aa年aa月
{
//截取字符串
if (i>=)
{
var year = strs.Substring(i-,); //截取4个
//验证该字符串是否是数字(略)
var mouth = strs.Substring(ii - , ).Replace("年",""); //截取月
var day = "";
//截取日
if (strs.Length-(ii+)>=) //xx月xx日
{
day = strs.Substring(ii,).Replace("月","");
}
textBox2.Text = year + mouth + day; break; }
} }
}
if (Mouthbl)
{
break; //包含月
}
}
} } private void button2_Click(object sender, EventArgs e)
{ // Newmode.CompileDate = Convert.ToDateTime(CompileDate); //时间 字符串转时间
textBox1.Text = "";
textBox2.Text = "";
}
public string ff(string strs)
{
string result = ""; strs = strs.Replace(" ", ""); //日期:2018年07月31日
var cut = ""; bool Mouthbl = false;
//查询第一个年字所在位置
for (int i = ; i < strs.Length; i++)
{
cut = strs.Substring(i, ); //截取一个字符
if (cut.Contains("年")) //当前字符是年字
{
//查找月字
for (int ii = i; ii < strs.Length; ii++)
{
cut = strs.Substring(ii, ); //截取一个字符
if (cut.Contains("月")) //当前字符是月字
{
//包含月字
Mouthbl = true;
var x = i;
var y = ii;
if (y - x <= && y - x > ) //年月,a年a月,aa年aa月
{
//截取字符串
if (i >= )
{
var year = strs.Substring(i - , ); //截取4个
//验证该字符串是否是数字(略)
var mouth = strs.Substring(ii - , ).Replace("年", ""); //截取月
if (mouth.Length == ) //位数为1补0
{
mouth = "" + mouth;
}
var day = "";
//截取日
if (strs.Length - (ii + ) >= ) //xx月xx日
{
day = strs.Substring(ii, ).Replace("月", "");
if (day.Length==)////位数为1补0
{
day = "" + day;
}
}
result = year+"#" + mouth + "#" + day;
break; }
} }
}
if (Mouthbl)
{
break; //包含月
}
}
}
return result;
}
}
}

C# 处理年月日提取时间的更多相关文章

  1. cmd提取时间格式(小时)问题以及Windows系统语言判断

    你在这里看到了我的现在的时间是01:15,没错正在做个开发,本来好好的,结果一运行,直接报错: 这里就是时间中的获取小时出了问题,之前23点那会已经调试通过了,过那时是没有问题的,那么这时发生了什么? ...

  2. NLP入门(十一)从文本中提取时间

      在我们的日常生活和工作中,从文本中提取时间是一项非常基础却重要的工作,因此,本文将介绍如何从文本中有效地提取时间.   举个简单的例子,我们需要从下面的文本中提取时间: 6月28日,杭州市统计局权 ...

  3. datetime 2017-10-21 10:09:02.560 转年月日的时间类型

    sql语句时间转年月日格式: 适用于多种时间格式 select  REPLACE(STUFF(CONVERT(char(10), REPLACE(CONVERT(varchar(10),'2017-1 ...

  4. Java获取当前时间年月日、时间格式化打印、字符串转日期

    package com.sysc.simple; import java.text.ParseException; import java.text.SimpleDateFormat; import ...

  5. MYSQL 提取时间中的信息的 4 方法

    方法 1. year(),month(),day() 方法 2. dayofweek(),dayofmonth(),dayofyear(); 方法 3. hour(),minute(),second( ...

  6. js HTML 年月日星期 时间的

    效果格式:2019 年 04 月 13 日 星期六 13 : 24 : 49上面的类名有多余的 因为这是之前项目中的 方便以后使用 <!DOCTYPE html> <html> ...

  7. scala转换date提取年月日时分秒

    从数据库提取出来的时间为 String 格式,现在需要转换为 date 并提取出里面的 小时 时间段: import java.text.SimpleDateFormat import java.ut ...

  8. excel函数提取身份证出生日期,分离日期时间的日期和时间

    1.提取身份证出生日期 =1*TEXT(MID(H13,7,8),"0-00-00")用MID函数提取表示日期的位数,再用text函数转换为格式1998-6-21格式的文本,再通过 ...

  9. 解析Linux内核的基本的模块管理与时间管理操作---超时处理【转】

    转自:http://www.jb51.net/article/79960.htm 这篇文章主要介绍了Linux内核的基本的模块管理与时间管理操作,包括模块加载卸载函数的使用和定时器的用法等知识,需要的 ...

随机推荐

  1. es的forcemerge——按照天分割

    归并线程配置 segment 归并的过程,需要先读取 segment,归并计算,再写一遍 segment,最后还要保证刷到磁盘.可以说,这是一个非常消耗磁盘 IO 和 CPU 的任务.所以,ES 提供 ...

  2. aria2 for mac

    本文是在安装好homebrew前提下 brew install aria2 然后配置参数 cd ~ mkdir .aria2 cd .aria2 vim aria2.conf 以下配置粘贴进去,红色需 ...

  3. Ubuntu redmine 安装

    /******************************************************************** * Ubuntu redmine 安装 * 说明: * 随着 ...

  4. Spring事物注意事项

    一.尽量用注解声明事务 过去开发喜欢用tx:advice+aop命名空间方式来配置事务,一次配置对满足切点规则的方法永久生效.但也可能因此导致事务滥用,在不需要用到事务的地方用了会影响系统的并发性能. ...

  5. Linux网络协议栈(三)——网络设备(2)

    2.1.网络设备的注册与注销注册网络设备发生在下列情形: (1)加载网卡驱动程序   网卡驱动程序如果被编译进内核,则它在启动时被初始化,在运行时被作为模块加载.无论初始化是否发生,所以由驱动程序控制 ...

  6. ChartCtrl源码剖析之——CChartScrollBar类

    CChartScrollBar类用来针对每个轴的数据进行滚动,将那些不在当前区域内的数据通过滚动展示出来. CChartScrollBar类的头文件. #pragma once class CChar ...

  7. 使用VirtualBox虚拟机搭建局域网

    参考资料: http://www.awaimai.com/995.html https://my.oschina.net/cofecafe1/blog/206535 最近公司局域网网络改造,在改造前已 ...

  8. linux修改用户主目录的方法 (转载)

    转自:http://xiaomaimai.blog.51cto.com/1182965/274002 第一:修改/etc/passwd文件第二:usermod命令 详细说明如下:第一种方法:vi /e ...

  9. Luogu P1462 通往奥格瑞玛的道路【二分/最短路】

    题目背景 在艾泽拉斯大陆上有一位名叫歪嘴哦的神奇术士,他是部落的中坚力量 有一天他醒来后发现自己居然到了联盟的主城暴风城 在被众多联盟的士兵攻击后,他决定逃回自己的家乡奥格瑞玛 题目描述 在艾泽拉斯, ...

  10. Luogu P2920 时间管理【二分答案】

    二分答案水题. (像我这么蒻的人都能十几分钟A掉) https://www.luogu.org/problemnew/show/P2920 开始时间一定在从0到min(t[i]-s[i])的一段区间上 ...