http://www.csharphelp.com/2007/09/c-time-class/

 /*
datatypes. Time class is writen in C# and .NET 2.0. Time class explantation. This is simple class and is not much to explain. 1.Public fields:
.public int Hour,
.public int Minute and
.public int Second.
.public const char TIME_SEPERATOR = ':' 2.Constructors:
.current system time (public Time()),
.from string value (public Time(string value)),
.from parameters (public Time(int hour, int minute, int second)) and
.from seconds (public Time(int seconds)). 3.
Public method Add: Example 1: InDoc.Systems.Time time1 = new InDoc.Systems.Time("12:00:55");
// calculate 12:00:55 + 14:55:20
time1.Add("14:55:20");
// result: 26:56:15 4. To addition two times you can use + and to subtraction you can use -.
Example 2: InDoc.Systems.Time time1 = new InDoc.Systems.Time("12:00:55") +
new InDoc.Systems.Time("14:55:20");
// result: 26:56:15 InDoc.Systems.Time time2 = new InDoc.Systems.Time("14:55:20") .
new InDoc.Systems.Time("12:00:55");
// result: 02:54:25 5. We have some convert methods: .public int ToSeconds(),
.public override string ToString() and static method that convert secontd to Time object:
.public static Time GetTimeFromSeconds(int seconds).
*/ using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace MysqlBig
{ /// <summary>
///
/// </summary>
public class Time
{
#region Public constants public const char TIME_SEPERATOR = ':'; #endregion #region Declarations public int Hour;
public int Minute;
public int Second; #endregion #region Constructors /// <summary>
/// Create time object from current system time.
/// </summary>
public Time()
{
Hour = DateTime.Now.Hour;
Minute = DateTime.Now.Minute;
Second = DateTime.Now.Second;
} /// <summary>
/// Create time object from string value must be seperated as TIME_SEPERATOR constant.
/// </summary>
/// <param name="value"></param>
public Time(string value)
{
string[] vals = value.Split(TIME_SEPERATOR); //new char[] { ':' });
Hour = int.Parse(vals[]);
Minute = int.Parse(vals[]); if (vals.Length > )
Second = int.Parse(vals[]); new Time(this.ToSeconds());
} /// <summary>
/// Create time object from parameters hour, minute and seconds.
/// </summary>
/// <param name="hour"></param>
/// <param name="minute"></param>
/// <param name="second"></param>
public Time(int hour, int minute, int second)
{
Hour = hour;
Minute = minute;
Second = second;
new Time(this.ToSeconds());
} /// <summary>
/// Create time object from seconds.
/// </summary>
/// <param name="seconds"></param>
public Time(int seconds)
{
Minute = seconds / ;
Second = seconds % ; Hour = Minute / ;
Minute = Minute % ;
} #endregion #region Public methods /// <summary>
/// Add new time object and addition (+) it to previus time object.
/// </summary>
/// <param name="time"></param>
/// <returns></returns>
public Time Add(Time time)
{
this.Hour += time.Hour;
this.Minute += time.Minute;
this.Second += time.Second; return new Time(GetStringTime(this.ToSeconds()));
} /// <summary>
/// Add new string value and addition (+) it to previus time object.
/// </summary>
/// <param name="value"></param>
/// <returns></returns>
public Time Add(string value)
{
return Add(new Time(value));
} #endregion #region Public static methods /// <summary>
/// Get current system time.
/// </summary>
/// <returns></returns>
public static Time Now()
{
DateTime dt = DateTime.Now;
return GetTimeFromSeconds(ToSeconds(dt));
} /// <summary>
/// Calculate time difference between two time objects.
/// </summary>
/// <param name="time1"></param>
/// <param name="time2"></param>
/// <returns></returns>
public static Time TimeDiff(Time time1, Time time2)
{
try
{
int _secs1 = time1.ToSeconds();
int _secs2 = time2.ToSeconds(); int _secs = _secs1 - _secs2; return GetTimeFromSeconds(_secs);
}
catch
{
return new Time(, , );
} } /// <summary>
/// Calculate time difference between two string values.
/// </summary>
/// <param name="time1"></param>
/// <param name="time2"></param>
/// <returns></returns>
public static Time TimeDiff(string time1, string time2)
{
try
{
Time t1 = new Time(time1);
Time t2 = new Time(time2);
return TimeDiff(t1, t2);
}
catch
{
return new Time(, , );
}
} /// <summary>
/// Calculate time difference between two DateTime objects.
/// </summary>
/// <param name="dateTime1"></param>
/// <param name="dateTime2"></param>
/// <returns></returns>
public static Time TimeDiff(DateTime dateTime1, DateTime dateTime2)
{
try
{
TimeSpan span = dateTime1 - dateTime2;
return new Time(span.Seconds);
}
catch
{
return new Time(, , );
}
} /// <summary>
/// Calculate time difference between two second values.
/// </summary>
/// <param name="seconds1"></param>
/// <param name="seconds2"></param>
/// <returns></returns>
public static Time TimeDiff(int seconds1, int seconds2)
{
try
{
Time t1 = new Time(seconds1);
Time t2 = new Time(seconds2);
return TimeDiff(t1, t2);
}
catch
{
return new Time(, , );
}
} #endregion #region Convert methods /// <summary>
/// Convert current time object to seconds.
/// </summary>
/// <returns></returns>
public int ToSeconds()
{
return this.Hour * + this.Minute * + this.Second;
} /// <summary>
/// Convert DateTime object to seconds.
/// </summary>
/// <param name="dateTime"></param>
/// <returns></returns>
public static int ToSeconds(DateTime dateTime)
{
return dateTime.Hour * + dateTime.Minute * + dateTime.Second;
} /// <summary>
/// Convert current time object to string.
/// </summary>
/// <returns></returns>
public override string ToString()
{
return String.Format("{0:00}:{1:00}:{2:00}", Hour, Minute, Second);
} /// <summary>
/// Convert seconds to time object.
/// </summary>
/// <param name="seconds"></param>
/// <returns></returns>
public static Time GetTimeFromSeconds(int seconds)
{
int _mins = seconds / ;
seconds = seconds % ; int _hours = _mins / ;
_mins = _mins % ; return new Time(_hours, _mins, seconds);
} /// <summary>
/// Convert seconds to string time.
/// </summary>
/// <param name="seconds"></param>
/// <returns></returns>
private string GetStringTime(int seconds)
{
int _mins = seconds / ;
seconds = seconds % ; int _hours = _mins / ;
_mins = _mins % ; this.Hour = _hours;
this.Minute = _mins;
this.Second = seconds; return String.Format("{0:00}:{1:00}:{2:00}", _hours, _mins, seconds); ;
} /// <summary>
/// Parse string to time.
/// </summary>
/// <param name="value"></param>
/// <returns></returns>
public static Time Parse(string value)
{
try
{
return new Time(value);
}
catch
{
throw new ApplicationException("Error parsing time!");
}
} #endregion #region Subtract time objects public static Time operator +(Time t1, Time t2)
{
Time t3 = new Time(t1.Hour, t1.Minute, t1.Second);
t3.Add(t2);
return t3;
} public static Time operator -(Time t1, Time t2)
{
return TimeDiff(t1, t2);
} #endregion
}
}

用法:

 /// <summary>
///
/// </summary>
public class AttendrecordInfo
{ int _Seq; public int Seq
{
set { _Seq = value; }
get { return _Seq; }
}
string _Emp_no; public string Emp_no
{
set { _Emp_no = value; }
get { return _Emp_no; }
} DateTime _Rdate; public DateTime Rdate
{
set { _Rdate = value; }
get { return _Rdate; }
} Time _Ttime; public Time Ttime
{
set { _Ttime = value; }
get { return _Ttime; }
}
string _Rdescription; public string Rdescription
{
set { _Rdescription = value; }
get { return _Rdescription; }
}
string _Rdes_reasnon; public string Rdes_reasnon
{
set { _Rdes_reasnon = value; }
get { return _Rdes_reasnon; }
} string _Branch; public string Branch
{
set { _Branch = value; }
get { return _Branch; }
} }
      /// <summary>
///
/// </summary>
/// <param name="seq"></param>
/// <returns></returns>
public AttendrecordInfo SelectAttendrecord(int seq)
{
AttendrecordInfo attendrecord = null;
try
{
MySqlParameter par = new MySqlParameter("?param1", MySqlDbType.Int32, );
par.Value = seq;
using (MySqlDataReader reader = MySqlHelpDu.GetReader("proc_Select_attendrecord", CommandType.StoredProcedure, par))
{
if (reader.Read())
{
attendrecord = new AttendrecordInfo();
attendrecord.Seq = (!object.Equals(reader["seq"], null)) ? (int)reader["seq"] : ;
attendrecord.Branch = (!object.Equals(reader["branch"], null)) ? (string)reader["branch"] : "";
attendrecord.Emp_no = (!object.Equals(reader["emp_no"], null)) ? (string)reader["emp_no"] : "";
attendrecord.Rdate = (!object.Equals(reader["rdate"], null)) ? DateTime.Parse(reader["rdate"].ToString()): DateTime.Now;
attendrecord.Ttime = (!object.Equals(reader["rtime"], null)) ? Time.Parse(reader["rtime"].ToString()): Time.Now();
attendrecord.Rdes_reasnon = (!object.Equals(reader["rdes_reasnon"], null)) ? (string)reader["rdes_reasnon"] : "";
attendrecord.Rdescription = (!object.Equals(reader["rdescription"], null)) ? (string)reader["rdescription"] : ""; }
}
}
catch (MySqlException ex)
{
throw ex;
}
return attendrecord;
}

Mysql 表:

 create table attendrecord
(
seq INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
emp_no varchar(20) null,
rdate datetime not null,
rtime time not null,
rdescription varchar(100),
rdes_reasnon varchar(100),
branch varchar(50)
); insert into attendrecord(emp_no,rdate,rtime,rdescription,rdes_reasnon,branch) values('L00094','2015-03-10','10:45','geovindu','du','sz');

C# Time Class using MySQL的更多相关文章

  1. Hadoop 中利用 mapreduce 读写 mysql 数据

    Hadoop 中利用 mapreduce 读写 mysql 数据   有时候我们在项目中会遇到输入结果集很大,但是输出结果很小,比如一些 pv.uv 数据,然后为了实时查询的需求,或者一些 OLAP ...

  2. mysql每秒最多能插入多少条数据 ? 死磕性能压测

    前段时间搞优化,最后瓶颈发现都在数据库单点上. 问DBA,给我的写入答案是在1W(机械硬盘)左右. 联想起前几天infoQ上一篇文章说他们最好的硬件写入速度在2W后也无法提高(SSD硬盘) 但这东西感 ...

  3. LINUX篇,设置MYSQL远程访问实用版

    每次设置root和远程访问都容易出现问题, 总结了个通用方法, 关键在于实用 step1: # mysql -u root mysql mysql> Grant all privileges o ...

  4. nodejs进阶(6)—连接MySQL数据库

    1. 建库连库 连接MySQL数据库需要安装支持 npm install mysql 我们需要提前安装按mysql sever端 建一个数据库mydb1 mysql> CREATE DATABA ...

  5. MySQL高级知识- MySQL的架构介绍

    [TOC] 1.MySQL 简介 概述 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司. MySQL是一种关联数据库管理系统,将数据保存在不同的表中,而 ...

  6. 闰秒导致MySQL服务器的CPU sys过高

    今天,有个哥们碰到一个问题,他有一个从库,只要是启动MySQL,CPU使用率就非常高,其中sys占比也比较高,具体可见下图. 注意:他的生产环境是物理机,单个CPU,4个Core. 于是,他抓取了CP ...

  7. 我的MYSQL学习心得(一) 简单语法

    我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...

  8. Entity Framework Core 实现MySQL 的TimeStamp/RowVersion 并发控制

    将通用的序列号生成器库 从SQL Server迁移到Mysql 遇到的一个问题,就是TimeStamp/RowVersion并发控制类型在非Microsoft SQL Server数据库中的实现.SQ ...

  9. Docker笔记一:基于Docker容器构建并运行 nginx + php + mysql ( mariadb ) 服务环境

    首先为什么要自己编写Dockerfile来构建 nginx.php.mariadb这三个镜像呢?一是希望更深入了解Dockerfile的使用,也就能初步了解docker镜像是如何被构建的:二是希望将来 ...

  10. 当忘记mysql数据库密码时如何进行修改

    因为长时间没有使用数据库了,或者把密码改完之后就忘了数据库密码,不能正常进入数据库,也无法修改密码,有一个简单的常用修改密码方式: 1.首先找到和打开mysql.exe和mysqld.exe所在的文件 ...

随机推荐

  1. 基于datax的数据同步平台

    一.需求 由于公司各个部门对业务数据的需求,比如进行数据分析.报表展示等等,且公司没有相应的系统.数据仓库满足这些需求,最原始的办法就是把数据提取出来生成excel表发给各个部门,这个功能已经由脚本转 ...

  2. Java多线程—阻塞队列和生产者-消费者模式

    阻塞队列支持生产者-消费者这种设计模式.该模式将“找出需要完成的工作”与“执行工作”这两个过程分离开来,并把工作项放入一个“待完成“列表中以便在随后处理,而不是找出后立即处理.生产者-消费者模式能简化 ...

  3. Windows下部署安装Docker

    好长时间没用Docker,最近准备部署一下,做个记录,今天早上去官网下载,发现Docker开始区分Docker Community Edition(社区版)和Docker Enterprise Edi ...

  4. Spring Security 入门

    一.Spring Security简介 Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架.它提供了一组可以在Spring应用上下文中配 ...

  5. jenkins运行Python

    法一: 配置中构建执行Windows批处理命令如下 立即构建后,报错如下,提示python 不是内部或外部指令 修改Windows批处理指令如下: 再次“立即构建”则正常 法二: 安装Python插件 ...

  6. webpack打包报错Chunk.entrypoints: Use Chunks.groupsIterable and filter by instanceof Entrypoint instead

    npm install –save-dev extract-text-webpack-plugin@next 会下载到+ extract-text-webpack-plugin@4.0.0-beta. ...

  7. 利用scrapy-client发布爬虫的远程服务器

    一.环境准备 远程服务器必须装有scapyd,我们使用的机器必须有scrapy-client(我这里是windows),并确保这两者正常安装并启动. 二.客户端准备上传 首先进入到爬虫项目的根文件夹: ...

  8. docker pull 私有镜像

    错误演示 [root@CentOS7 jdk8]# curl http://10.20.2.29:5000/v2/_catalog {"repositories":["d ...

  9. 学习Linux最简单的方法

    大多数初学者在刚刚接触Linux都会有非常陌生的感觉.往往会有一些疑惑和问题.而我们就沿着这些问题,从远及近,从宏观到微观来理解Linux的简洁和美丽. 问题1:Winows有注册表,为什么Linux ...

  10. 各种height/width总结

    CSS盒模型是比较复杂的,尤其是当页面中有滚动条时,仅仅通过css来操作高度宽度是不够的,幸运的是Javascript提供了不少这样的接口.Javascript中clientHeight / clie ...