C# Time Class using MySQL
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的更多相关文章
- Hadoop 中利用 mapreduce 读写 mysql 数据
Hadoop 中利用 mapreduce 读写 mysql 数据 有时候我们在项目中会遇到输入结果集很大,但是输出结果很小,比如一些 pv.uv 数据,然后为了实时查询的需求,或者一些 OLAP ...
- mysql每秒最多能插入多少条数据 ? 死磕性能压测
前段时间搞优化,最后瓶颈发现都在数据库单点上. 问DBA,给我的写入答案是在1W(机械硬盘)左右. 联想起前几天infoQ上一篇文章说他们最好的硬件写入速度在2W后也无法提高(SSD硬盘) 但这东西感 ...
- LINUX篇,设置MYSQL远程访问实用版
每次设置root和远程访问都容易出现问题, 总结了个通用方法, 关键在于实用 step1: # mysql -u root mysql mysql> Grant all privileges o ...
- nodejs进阶(6)—连接MySQL数据库
1. 建库连库 连接MySQL数据库需要安装支持 npm install mysql 我们需要提前安装按mysql sever端 建一个数据库mydb1 mysql> CREATE DATABA ...
- MySQL高级知识- MySQL的架构介绍
[TOC] 1.MySQL 简介 概述 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司. MySQL是一种关联数据库管理系统,将数据保存在不同的表中,而 ...
- 闰秒导致MySQL服务器的CPU sys过高
今天,有个哥们碰到一个问题,他有一个从库,只要是启动MySQL,CPU使用率就非常高,其中sys占比也比较高,具体可见下图. 注意:他的生产环境是物理机,单个CPU,4个Core. 于是,他抓取了CP ...
- 我的MYSQL学习心得(一) 简单语法
我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...
- Entity Framework Core 实现MySQL 的TimeStamp/RowVersion 并发控制
将通用的序列号生成器库 从SQL Server迁移到Mysql 遇到的一个问题,就是TimeStamp/RowVersion并发控制类型在非Microsoft SQL Server数据库中的实现.SQ ...
- Docker笔记一:基于Docker容器构建并运行 nginx + php + mysql ( mariadb ) 服务环境
首先为什么要自己编写Dockerfile来构建 nginx.php.mariadb这三个镜像呢?一是希望更深入了解Dockerfile的使用,也就能初步了解docker镜像是如何被构建的:二是希望将来 ...
- 当忘记mysql数据库密码时如何进行修改
因为长时间没有使用数据库了,或者把密码改完之后就忘了数据库密码,不能正常进入数据库,也无法修改密码,有一个简单的常用修改密码方式: 1.首先找到和打开mysql.exe和mysqld.exe所在的文件 ...
随机推荐
- [转] Foobar2000 DSP音效外挂元件-Part4
[转] Foobar2000 DSP音效外挂元件-Part4 在第1部分的文章里主要介绍了foobar2000预设的DSP音效调整,这些则示要介绍几个比较会用到的DSP外挂元件,在foobar2000 ...
- MQ 消息队列的比较
目前业界有很多MQ产品,我们作如下对比: RabbitMQ 是使用Erlang编写的一个开源的消息队列,本身支持很多的协议:AMQP,XMPP, SMTP, STOMP,也正是如此,使的它变的非常重量 ...
- 【Quartz】解密properties配置文件中的账号密码
在配置quartz时,为了保密某些信息(特别是账号密码),通常会使用密文.那么在实际使用这些配置信息时,需要进行解密.本文提供一种解密方法如下: (1)假设在properties文件中加密了账号密码 ...
- jquery scrollTop()与scrollLeft()
1.scrollLeft() scrollLeft() 方法设置或返回被选元素的水平滚动条位置. 提示:当滚动条位于最左侧时,位置是 0. 当用于返回位置时:该方法返回第一个匹配元素的滚动条的水平位置 ...
- python全栈开发_day16_包
一:包 1)包就是管理一系列模块的文件夹 2)包中有一个__init__.py文件来专门管理每一个模块(在__init__文件中不建议import导入模块,不建议as起别名) 二:导入完成的工作 1) ...
- CentOS7 安装 Adobe Flash 看网络视频
登录 Adobe 网站,找到 Adobe Flash Player 下载页,进入后网页自动识别 Linux 环境,手动选择版本,选择 YUM 方式,自动下载一个 rpm 文件 定位到下载目录,通常默认 ...
- Zynq-7000 FreeRTOS(二)中断:串口Uart中断
总结Zynq-7000器件的PS上的串口中断,为FreeRTOS中断实验做准备.
- golang在gitlab中的工作流
在敏捷开发的时代, 快速的编码, code review, 测试, 部署, 是提升程序员效率的关键. 同时在基础工具完备的如今, 我们甚至无需过多的操作就可以轻松实现上述步骤, 本文就以gitlab为 ...
- wusir 线程间操作无效: 从不是创建控件“”的线程访问它 解决办法
利用FileSystemWatcher设计一个文件监控系统时,如果一个文件被修改或者新建,则文件修改事件会被多次触发而产生多条信息.为了将一个文件被修改一次而产生的多条信息归结为一条,在设计中新开了一 ...
- (转)InnoDB存储引擎MVCC实现原理
InnoDB存储引擎MVCC实现原理 原文:https://liuzhengyang.github.io/2017/04/18/innodb-mvcc/ 简单背景介绍 MySQL MySQL是现在最流 ...