`
zhijin
  • 浏览: 75985 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

C#有关时间的处理

阅读更多

   //定义一个时间类型
   System.DateTime currentTime = new System.DateTime();
   //取当前年月日时分秒
   currentTime = System.DateTime.Now;
   //取当前年
   int curYear = currentTime.Year;
   //取当前月
   int curMon = currentTime.Month;
   //取当前日
   int curDay = currentTime.Day;
   //取当前小时
   int curHour = currentTime.Hour;
   //取当前分钟
   int curMin = currentTime.Minute;


   //DateTime d2=DateTime.Parse("2006-06-07 18:25:25");
   DateTime d1=DateTime.Parse("2006-06-07 13:20");
   DateTime d2=DateTime.Parse("2006-06-07 20:35");
   DateTime d3=DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd")+" 13:20:25");
   System.TimeSpan ND=d2-d1;
   int n=ND.Days;   //天数差
   int hn=ND.Hours; //小时差
   int mn = ND.Minutes; //分钟差
   

加一个月、日、时、分\秒等
System.DateTime date1=System.DateTime.Now;
System.DateTime date2=date1.AddMonths(1);
System.DataTime data3=data1.AddDays(1);
//DateTime d2 = dateTimeStart.AddMinutes(45);//Add方法对时间加减 

 

改变日期格式

有时候我们要对时间进行转换,达到不同的显示效果
默认格式为:2005-6-6 14:33:34
如果要换成成200506,06-2005,2005-6-6或更多的该怎么办呢
我们要用到:DateTime.ToString的方法(String, IFormatProvider)

using System;
using System.Globalization;
String format="D";
DateTime date=DataTime,Now;
Response.Write(date.ToString(format, DateTimeFormatInfo.InvariantInfo));
结果输出
Thursday, June 16, 2005

参数format格式详细用法
格式字符 关联属性/说明
d ShortDatePattern
D LongDatePattern
f 完整日期和时间(长日期和短时间)
F FullDateTimePattern(长日期和长时间)
g 常规(短日期和短时间)
G 常规(短日期和长时间)
m、M MonthDayPattern
r、R RFC1123Pattern
s 使用当地时间的 SortableDateTimePattern(基于 ISO 8601)
t ShortTimePattern
T LongTimePattern
u UniversalSortableDateTimePattern 用于显示通用时间的格式
U 使用通用时间的完整日期和时间(长日期和长时间)
y、Y YearMonthPattern

下表列出了可被合并以构造自定义模式的模式。这些模式是区分大小写的;例如,识别“MM”,但不识别“mm”。如果自定义模式包含空白字符或用单引号括起来的字符,则输出字符串页也将包含这些字符。未定义为格式模式的一部分或未定义为格式字符的字符按其原义复制。

格式模式 说明
d 月中的某一天。一位数的日期没有前导零。
dd 月中的某一天。一位数的日期有一个前导零。
ddd 周中某天的缩写名称,在 AbbreviatedDayNames 中定义。
dddd 周中某天的完整名称,在 DayNames 中定义。
M 月份数字。一位数的月份没有前导零。
MM 月份数字。一位数的月份有一个前导零。
MMM 月份的缩写名称,在 AbbreviatedMonthNames 中定义。
MMMM 月份的完整名称,在 MonthNames 中定义。
y 不包含纪元的年份。如果不包含纪元的年份小于 10,则显示不具有前导零的年份。
yy 不包含纪元的年份。如果不包含纪元的年份小于 10,则显示具有前导零的年份。
yyyy 包括纪元的四位数的年份。
gg 时期或纪元。如果要设置格式的日期不具有关联的时期或纪元字符串,则忽略该模式。
h 12 小时制的小时。一位数的小时数没有前导零。
hh 12 小时制的小时。一位数的小时数有前导零。
H 24 小时制的小时。一位数的小时数没有前导零。
HH 24 小时制的小时。一位数的小时数有前导零。
m 分钟。一位数的分钟数没有前导零。
mm 分钟。一位数的分钟数有一个前导零。
s 秒。一位数的秒数没有前导零。
ss 秒。一位数的秒数有一个前导零。
f 秒的小数精度为一位。其余数字被截断。
ff 秒的小数精度为两位。其余数字被截断。
fff 秒的小数精度为三位。其余数字被截断。
ffff 秒的小数精度为四位。其余数字被截断。
fffff 秒的小数精度为五位。其余数字被截断。
ffffff 秒的小数精度为六位。其余数字被截断。
fffffff 秒的小数精度为七位。其余数字被截断。
t 在 AMDesignator 或 PMDesignator 中定义的 AM/PM 指示项的第一个字符(如果存在)。
tt 在 AMDesignator 或 PMDesignator 中定义的 AM/PM 指示项(如果存在)。
z 时区偏移量(“+”或“-”后面仅跟小时)。一位数的小时数没有前导零。例如,太平洋标准时间是“-8”。
zz 时区偏移量(“+”或“-”后面仅跟小时)。一位数的小时数有前导零。例如,太平洋标准时间是“-08”。
zzz 完整时区偏移量(“+”或“-”后面跟有小时和分钟)。一位数的小时数和分钟数有前导零。例如,太平洋标准时间是“-08:00”。
: 在 TimeSeparator 中定义的默认时间分隔符。
/ 在 DateSeparator 中定义的默认日期分隔符。
% c 其中 c 是格式模式(如果单独使用)。如果格式模式与原义字符或其他格式模式合并,则可以省略“%”字符。
\ c 其中 c 是任意字符。照原义显示字符。若要显示反斜杠字符,请使用“\”。

只有上面第二个表中列出的格式模式才能用于创建自定义模式;在第一个表中列出的标准格式字符不能用于创建自定义模式。自定义模式的长度至少为两个字符;例如,

DateTime.ToString( "d") 返回 DateTime 值;“d”是标准短日期模式。
DateTime.ToString( "%d") 返回月中的某天;“%d”是自定义模式。
DateTime.ToString( "d ") 返回后面跟有一个空白字符的月中的某天;“d”是自定义模式。

比较方便的是,上面的参数可以随意组合,并且不会出错,多试试,肯定会找到你要的时间格式
如要得到2005年06月 这样格式的时间
可以这样写:
date.ToString("yyyy年MM月", DateTimeFormatInfo.InvariantInfo)
如此类推

比较时间大小
  string st1="12:13";
   string st2="14:14";
   DateTime dt1=Convert.ToDateTime(st1);
   DateTime dt2=Convert.ToDateTime(st2);
   DateTime dt3=DateTime.Now;
   if(DateTime.Compare(dt1,dt2)>0)
    msg.Text=st1+">"+st2;
   else
    msg.Text=st1+"<"+st2;
   msg.Text+="\r\n"+dt1.ToString();
   if(DateTime.Compare(dt1,dt3)>0)
    msg.Text+="\r\n"+st1+">"+dt3.ToString();
   else
    msg.Text+="\r\n"+st1+"<"+dt3.ToString();

计算两个日期之间的间隔天数的函数.如"20040506与20050506之间的天数可以这样调用  
  double   tts=ddbetween("20040506","20050506");  
  private   double   ddbetween(string   fisrdate,string   seconddate)  
  {  
  int   yy1   =   Convert.ToInt32(fisrdate.Substring(0,4));    
  int   mm1   =   Convert.ToInt32(fisrdate.Substring(4,2));  
  int   dd1   =   Convert.ToInt32(fisrdate.Substring(6,2));  
  int   yy2   =   Convert.ToInt32(seconddate.Substring(0,4));    
  int   mm2   =   Convert.ToInt32(seconddate.Substring(4,2));  
  int   dd2   =   Convert.ToInt32(seconddate.Substring(6,2));  
  DateTime   dt1   =   new   DateTime(yy1,mm1,dd1);  
  DateTime   dt2   =   new   DateTime(yy2,mm2,dd2);  
  TimeSpan   ts   =   dt2   -   dt1;  
  double   tts=Convert.ToDouble(ts.TotalDays);  
  return   tts;  
  }

TotalDays的基本用法
DateTime d1=Convert.ToDateTime("2006-01-03");
DateTime d2=Convert.ToDateTime("2006-3-5");
TimeSpan s=d2-d1;
string ss=s.TotalDays.ToString();
Response.Write(ss);

计算两个时间差值的函数,返回时间差的绝对值:
        private string DateDiff(DateTime DateTime1,DateTime DateTime2)
        {
            string dateDiff=null;
            try
            {
                TimeSpan ts1=new  TimeSpan(DateTime1.Ticks);
                TimeSpan ts2=new  TimeSpan(DateTime2.Ticks);
                TimeSpan ts=ts1.Subtract(ts2).Duration();
                dateDiff=ts.Days.ToString()+"天"
                        +ts.Hours.ToString()+"小时"
                        +ts.Minutes.ToString()+"分钟"
                        +ts.Seconds.ToString()+"秒";
            }
            catch
            {

            }
            return dateDiff;
        }

实现计算DateTime1-36天=DateTime2的功能
   TimeSpan ts=new TimeSpan(40,0,0,0);
   DateTime dt2=DateTime.Now.Subtract(ts);
   msg.Text=DateTime.Now.ToString()+"-"+ts.Days.ToString()+"天\r\n";
   msg.Text+=dt2.ToString(); 

分享到:
评论

相关推荐

    C#数字信号处理

    C#是一种面向对象的编程语言,它提供了丰富的数学运算库和高性能的计算能力,因此也被广泛用于数字信号处理的应用开发。下面将详细介绍C#在数字信号处理中的应用及其相关的知识点。 1. **基础概念**: - **数字...

    c#处理时间

    C#时间处理 C#语言中提供了多种方式来处理时间,包括获取当前时间、计算两个日期之间的差异、获取某月的最后一天等。下面将对C#中的时间处理进行详细介绍。 1. 获取当前时间 使用DateTime.Now可以获取当前时间,...

    c#显示时间控件

    在C#编程中,时间控件是用于展示和操作时间的一种可视化元素,它通常被集成在Windows Forms或WPF应用程序中。"c#显示时间控件"主要涉及到两种常见的控件:DateTimePicker和Timer。 DateTimePicker控件允许用户选择...

    C# 进度条显示处理进度

    在C#编程中,进度条是一种用户界面元素,用于向用户反馈某个长时间运行任务的进度。在处理大量数据或执行耗时操作时,提供进度指示器可以显著提升用户体验。本篇将详细介绍如何在C#中实现一个简洁且高效的进度条,以...

    C# 视频时间轴控制 DirectShow VLC

    在“C# 视频时间轴控制 DirectShow VLC”这个主题中,我们将深入探讨如何利用C#、VLC和DirectShow来实现视频的时间轴控制功能。 首先,我们要了解DirectShow在视频播放中的作用。DirectShow提供了一套API接口,允许...

    C# 自定义控件实现时间轴

    在C#编程中,自定义控件是一种常见的需求,...总之,创建C#自定义时间轴控件是一项涉及图形绘制、事件处理、数据绑定和性能优化等多个方面的任务。理解这些概念和技术将有助于你构建出功能强大且易于使用的自定义控件。

    C# Winform播放器时间轴

    综上所述,"C# Winform播放器时间轴"项目涵盖了自定义控件的创建、图形绘制、事件处理、属性设计、时间格式化、响应式布局、样式配置以及性能优化等多个方面,是一个综合性的编程实践。通过学习这个项目的源代码,...

    C# 文件批量处理

    C#中的Task Parallel Library (TPL) 或 ThreadPool 类可以帮助我们并发地处理文件,从而减少整体处理时间。 4. **异步编程**: C#引入了async/await关键字,可以编写非阻塞的异步代码,使得程序在等待文件操作完成时...

    最全C#时间处理通用类(DateTimeHelper)

    在C#编程中,时间处理是一项非常常见的任务,涉及到日期和时间的计算、格式化以及比较等操作。本文将深入探讨一个名为`DateTimeHelper`的通用类,它为开发者提供了便利的方法来处理C#中的`DateTime`对象。`...

    C#获取北京时间

    在本篇文章中,我们将深入探讨如何使用C#编程语言来获取北京时间,并且会详细介绍与之相关的各种技术细节。北京时间是中国采用的标准时间,即东八区的区时,它与协调世界时(UTC)相差8小时。 ### 一、C# 获取当前...

    C# 从NTP服务器获取时间并同步本地时间WinForm

    本项目"**C# 从NTP服务器获取时间并同步本地时间WinForm**"提供了一个使用C#编程语言实现的WinForm应用,其功能是自动从NTP服务器获取时间,并将获取到的准确时间同步到本地计算机。下面将详细介绍这个项目涉及到的...

    C# 常用日期时间函数

    在C#编程中,日期和时间操作是常见的需求,用于处理和展示各种日期时间相关的数据。DateTime类是C#中处理日期和时间的核心类,它提供了...了解并熟练掌握这些函数和方法对于编写高效、准确的日期时间处理代码至关重要。

    c#图像处理类库

    自己花了一段时间整理的c#图像处理用到的类库

    C#开源的信号处理库NWaves

    NWaves是C#编程语言中的一款开源信号处理库,专为处理声音、图像和其他类型的时间序列数据而设计。这款库集成了多种高级算法和技术,为开发者提供了丰富的工具来执行信号分析、特征提取、滤波、识别以及其他与信号...

    音频处理 C#

    在本文中,我们将深入探讨如何使用C#进行音频处理,主要基于提供的"AdvancedWave"源代码。C#作为Microsoft .NET框架的主要编程语言,提供了强大的工具和技术来处理音频数据。以下是一些关键知识点: 1. **NAudio库*...

    C#日期时间大全

    在C#编程语言中,日期和时间处理是日常开发中不可或缺的部分。无论是记录日志、显示用户友好的日期,还是处理服务器上的时间戳,都离不开对日期和时间的格式化。C#提供了丰富的API和格式化选项来处理日期时间,包括...

    C#修改Windows时间

    C#本身并不直接支持修改系统时间,但我们可以借助操作系统提供的API接口来完成这个任务。 首先,了解Windows API。API(Application Programming Interface)是操作系统提供的一组函数,允许开发者执行特定的操作,...

    C#根据时间产生ID编号

    ### C#根据时间产生ID编号 在软件开发中,经常需要为每一笔数据或记录生成唯一的标识符(ID)。在某些场景下,基于时间戳来生成ID是一种常见且有效的方法。这种方式不仅简单易行,还能确保大部分情况下ID的唯一性。...

    C#处理大容量数据,及多线程简单应用

    在C#中,长时间运行的任务会阻塞UI线程,导致界面无响应,这种现象被称为“假死”。为了解决这个问题,我们可以使用多线程技术。通过创建新的工作线程来执行耗时任务,主线程可以继续更新UI,保持界面的响应性。例如...

    C#实现判断一个时间点是否位于给定时间区间的方法

    本篇将详细介绍如何利用C#来实现这个功能,包括时间的处理、字符串解析以及条件判断。 首先,我们需要理解问题的核心:给定一个`DateTime`对象`dt`(代表时间点)和一个时间区间字符串`time_intervals`,判断`dt`...

Global site tag (gtag.js) - Google Analytics