C#类常用技巧

//今天
DateTime.Now.Date.ToShortDateString();
//昨天,也就是今天的日期减一
DateTime.Now.AddDays(-1).ToShortDateString();
//明天,同理,加一
DateTime.Now.AddDays(1).ToShortDateString();
//本周(要知道本周第一天就得先知道今天是星期几,从而得知
本周第一天就是几天前的那一天;每一周是从周日始至周六止[0-6])
DateTime.Now.AddDays(Convert.ToDouble((0-Convert.ToInt16
(DateTime.Now.DayOfWeek)))).ToShortDateString();
//DateTime.Now.DayOfWeek获得今天是本周的第几天(0<=n<=6)
DateTime.Now.AddDays(Convert.ToDouble((6-Convert.ToInt16
(DateTime.Now.DayOfWeek)))).ToShortDateString();
//中文显示星期几
//由于DayOfWeek返回的是数字的星期几,需要把它转换成汉字以方便人们
阅读,有些人会用SWITCH来一个一个地对照,其实我们有更优的策略
string[] Day=new string[]{"星期日","星期一",星期二","星期三",
"星期四","星期五","星期六"};
Day[Convert.ToInt16(DateTime.Now.DayOfWeek)];//使用它来获取
//上周,同理,一个周是7天,上周就是本周在减去7天,下周也是一样
DateTime.Now.AddDays(Convert.ToDouble((0-Convert.ToInt16(
DateTime.Now.DayOfWeek)))-7).ToShortDateString();
DateTime.Now.AddDays(Convert.ToDouble((6-Convert.ToInt16(
DateTime.Now.DayOfWeek)))-7).ToShortDateString();
//下周
DateTime.Now.AddDays(Convert.ToDouble((0-Convert.ToInt16(
Datetime.Now.DayOfWeek)))+7).ToShortDateString();
DateTime.Now.AddDays(Convert.ToDouble((6-Convert.ToInt16(
DateTime.Now.DayOfWeek)))+7).ToShortDateString();
//本月,本月的第一天是1号,最后一天就是下个月的1号再减一天
DateTime.Now.Year.ToString()+DateTime.Now.Month.ToString(
)+"1";//第一天
DateTime.Parse(DateTime.Now.Year.ToString()+DateTime.Now.
Month.ToString()+"1").AddMonths(1).AddDays(-1).ToShortDateString();
//最后一天
//巧用C#里ToString的字符格式化更简便
DateTime.Now.ToString("yyyy-MM-01");
DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01")).AddMonths(1).AddDays
(-1).ToShortDateString();
//上个月,减去一个月份
DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01")).AddMonths(-1).ToShortDateString();
DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01")).AddDays(-1).ToShortDateString();
//下个月,加上一个月份
DateTime.Parse(Datetime.Now.ToString("yyyy-MM-01")).AddMonths(1).ToShortDateString();
DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01")).AddMonths(2).AddDays(-1).ToShortString();
//7天后
DateTime.Now.Date.ToShortDateString();
DateTime.Now.AddDays(7).ToShortDateString();
//7天前
DateTime.Now.AddDays(-7).ToShortDateString();
DateTime.Now.Date.ToShortDateString();
//本年度,用ToString的字符格式化我们也很容易算出本年度的第一天和最后一天
DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).ToShortDateString();
DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).AddYears(1).AddDays(-1).ToShortString();
//上年度
DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).AddYears(-1).ToShortDateString();
DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).AddDays(-1).ToShortDateString();
//下年度
DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).AddYears(1).ToShortDateString();
DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).AddYears(2).AddDays(-1).ToShortDateString();
//本季度,很多人都会觉得这里是难点,需要写个长长的过程来判断;其实不用的,我们都知道一年四个季度,一个季度三个月
//首先我们把日期推到本季度第一个月,然后这个月的第一天就是本季度的第一天了
DateTime.Now.AddMonths(0-((DateTime.Now.Month-1)%3)).ToString("yyyy-MM-01");
//同理,本季度的最后一天就是下个季度的第一天减一
DateTime.Parse.(DateTime.Now.AddMonth(3-((DateTime.Now.Month-1)%3)).ToString("yyyy-MM-01")).AddDays(-1).ToShortDateString();
//下季度
DateTime.Now.AddMonths(3-((DateTime.Now.Month-1)%3)).ToString("yyyy-MM-01");
DateTime.Parse(DateTime.Now.AddMonths(6-((DateTime.Now.Month-1)%3)).ToString("yyyy-MM-01").AddDays(-1).ToShortDateString();
//上季度
DateTime.Now.AddMonths(-3-((DateTime.Now.Month-1)%3)).ToString("yyyy-MM-01");
DateTime.Parse(DateTime.Now.AddMonths(0-((DateTime.Now.Month-1)%3)).ToString("yyyy-MM-01").AddDays(-1).ToShortDateString();
//获得当月有多少天
int m=System.DateTime.DaysInMonth(System.DateTime.Now.Year,System.DateTime.Now.Month);
//获取某月的实际工作日(即不包括周六日)
//int days=getDays(System.DateTime.Now);调用即可获得
private int getDays(System.DateTime date1)
{
int m=System.DateTime.DaysInMonth(date1.Year,date1.Month);
int mm=0;
for(int i=1;i<=m;i++)
{
System.DateTime date=Convert.ToDateTime(date1.Year+"-"+date1.Month+"-"+i);
switch(date.DayOfWeek)
{
case System.DayOfWeek.Monday:
case System.DayOfWeek.Tuessday:
case System.DayOfWeek.Wednesday:
case System.DayOfWeek.Thursday:
case System.DayOfWeek.Friday:
mm=mm+1;
break;
}
}
return mm;
}
//获得任意两日期之间的有效工作日(不包括周六日)
DateTime date1=Convert.ToDateTime("2008-8-8");
DateTime date2=Convert.ToDateTime("2008-10-1");
int days=getDays(date1,date2);
//调用如上即可获得
private int getDays(System.DateTime date1,System.DateTime date2)
{
string m=Microsoft.VisualBasic.DateAndTime.DateDiff(EnumDateCompare.day,date1,date2).ToString("f0");
int mm=0;
for(int i=0;i<=Convert.ToInt32(m);i++)
{
System.DateTime date=Convert.ToDateTime(date1.AddDays(i));
switch(date.DayOfWeek)
{
case System.DayOfWeek.Monday:
case System.DayOfWeek.Tuesday:
case System.DayOfWeek.Wednesday:
case System.DayOfWeek.Thursday:
case System.DayOfWeek.Friday:
mm=mm+1;
break;
}
}
return mm;
}
//格式输出
private void Page_Load(object sender,System.EventArgs e)
{
System.Globalization.DateTimeFormatInfo myDTFI=new System.Globalization.CultureInfo("en-US",false).DateTimeFormat;
//中国为zh-cn
DateTime myDT=System.DateTime.Now;
Response.Write(myDT.ToString("f",myDTFI));
//获得本周的周六和周日
public static void ConvertDateToWeek(DateTime date,out DateTime firstdate,out DateTime lastdate)
{
DateTime first System.DateTime.Now;
DateTime last=System.DateTime.Now;
switch(date.DayOfWeek)
{
case System.DayOfWeek.Monday:
first=date.AddDays(-1);
last=date.AddDays(5);
break;
case System.DayOfWeek.Tuesday:
first=date.AddDays(-2);
last=date.AddDays(4);
break;
case System.DayOfWeek.Wednesday:
first=date.AddDays(-3);
last=date.AddDays(3);
break;
case System.DayOfWeek.Thursday:
first=date.AddDays(-4);
last=date.AddDays(2);
break;
case System.DayOfWeek.Friday:
first=date.AddDays(-5);
last=date.AddDays(1);
break;
case System.DayOfWeek.Saturday:
first=dateAddDays(-6);
last=date;
break;
case System.DayOfWeek.Sunday:
first=date;
last=date.AddDays(6);
break;
}
firstdate=first;
lastdate=last;
}
//调用
DateTime firstdate=System.DateTime.Now;
DateTime lastdate=System.Datetime.Now;
ConvertDateToWeek(date,out firstdate,out lastdate);
//获得当前日期是该年度的第几周
DateTime dt=Convert.ToDateTime("2008-8-8");
int weeks=dt.DayOfYear/7+1;

C# Datetime类常用技巧的更多相关文章

  1. DateTime类常用技巧摘录

    //今天 DateTime.Now.Date.ToShortDateString(); //昨天,就是今天的日期减一 DateTime.Now.AddDays(-).ToShortDateString ...

  2. Vim 常用技巧:

    Vim 常用技巧: 将回车由默认的8个空格改为4个空格: 命令:set sw=4 修改tab为4空格: 命令:set ts=4 设置每一级的缩进长度: 命令:set shiftwidth=4 设置文件 ...

  3. AS技巧合集「常用技巧篇」

    转载:http://www.apkbus.com/forum.php?mod=viewthread&tid=254723&extra=page%3D2%26filter%3Dautho ...

  4. yii项目开发项目常用技巧和方法汇总

    1.使用CActiveForm类组件如何输出不带html属性的结果 eg:<?php echo $form->textField($model,'email',array('size'=& ...

  5. Python datetime模块的datetime类

    datetime模块定义了下面这几个类: datetime.date:表示日期的类.常用的属性有year, month, day. datetime.time:表示时间的类.常用的属性有hour, m ...

  6. Idea 常用功能汇总,工作中常用技巧

    1.隐藏没用到的文件 比如 IDEA 的项目配置文件(.iml 和.idea),打开 Settings-File Types, 加入要隐藏的文件后缀.  2.常用技巧 2.1 通过Alt+F8查看变量 ...

  7. Idea 常用功能汇总,工作中常用技巧,移出请说明原因,笔记花了好长时间汇总的

    1.隐藏没用到的文件 比如 IDEA 的项目配置文件(.iml 和.idea),打开 Settings-File Types, 加入要隐藏的文件后缀.  2.常用技巧 2.1 通过Alt+F8查看变量 ...

  8. LocalDate常用技巧

    LocalDate是Java8新增的处理日期的类,使用起来比java.utils.date方便了许多.记录一些常用技巧: // 取当前日期: LocalDate today = LocalDate.n ...

  9. SHELL脚本编程的常识和VI常用技巧

    来源:http://mprc.pku.edu.cn/mentors/training/TrainingCourses/material/ShellProgramming.HTM#_Toc3751808 ...

随机推荐

  1. java 反射技术

    什么是反射?反射就是将字节码中的各种成分映射到相应的java类中来,java反射技术自JDK1.1以来就出现了,目前大多数流行的框架都采用了这种技术,可见其重要性,这篇文章将详细介绍我对java反射技 ...

  2. Mingyang.net:为什么不将Bean定义在Action参数中?

    Spring MVC提供了一种方便的Bean填充方式: @Controller public class CmsChannelController extends AbstractController ...

  3. POJ 2823【单调队列】

    题意: 给出序列,找出每个连续长度为k的子序列的最大值和最小值. 思路: 裸单调队列... 单调队列这东西用的真的非常局限,大概只能用到这种情景中== 简单说一下维护: 添加元素,为了保持单调性,排除 ...

  4. oracle 数据恢复,只有oradata文件夹里的文件,没有备份文件的数据库恢复,重装系统后,oracle 10g数据库恢复

    格式化重装系统后,才想起来oracle 10g 数据库没有做备份,开始以为很麻烦,没想到数据库恢复的还挺顺利的 恢复方法: 1,把原来的数据库文件备份,(D:\oracle\product\10.2. ...

  5. [ZOJ 1006] Do the Untwist (模拟实现解密)

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=6 题目大意:给你加密方式,请你求出解密. 直接逆运算搞,用到同余定理 ...

  6. 用HTML代码加载Unity内容

    Unity内容在浏览器通过Unity网络播放器插件加载.HTML代码与这个插件通常不直接通信,而是通过UnityObject的脚本帮助.其主要任务是Unity的内容嵌入一个非常简单的任务,通过从各种浏 ...

  7. IOS中类似的。9.png图片

    图形用户界面中的图形有两种实现方式,一种是用代码画出来,比如Quartz 2D技术,狠一点有OpenGL ES,另一种则是使用图片. 代码画的方式比较耗费程序员脑力,CPU或GPU; 图片则耗费磁盘空 ...

  8. Spark核心概念之RDD

    RDD: Resilient Distributed Dataset RDD的特点: 1.A list of partitions       一系列的分片:比如说64M一片:类似于Hadoop中的s ...

  9. android 如何设置背景的透明度

    半透明<Button android:background="#e0000000" ... />透明<Button android:background=&quo ...

  10. 002 The Variables In Csharp

    在介绍本章之前,我们先看一下C#的编译过程,如下图所示: 图片摘自:http://www.developingthefuture.net/compilation-process-and-jit-com ...