获取当前、过去、将来(年、月、日、周)
2012-12-11 09:48
148 查看
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string dayNow = DateTime.Now.ToString("yyyyMMdd");
Console.WriteLine("当前日期:"+dayNow);
string yesterday = DateTime.Now.AddDays(-1).ToString("yyyyMMdd");
Console.WriteLine("昨天日期:" + yesterday);
string tomorry = DateTime.Now.AddDays(1).ToString("yyyyMMdd");
Console.WriteLine("明天日期:" + tomorry);
Console.WriteLine();
string nowMonth = DateTime.Now.ToString("yyyyMM");
Console.WriteLine("本月日期:" + nowMonth);
string aBoveMonth = DateTime.Now.AddMonths(-1).ToString("yyyyMM");
Console.WriteLine("上月日期:" + aBoveMonth);
string aLoveMonth = DateTime.Now.AddMonths(1).ToString("yyyyMM");
Console.WriteLine("下月日期:" + aLoveMonth);
Console.WriteLine();
string nowWeek = DateTime.Now.ToString("yyyy") + WeekOfYear(DateTime.Now);
Console.WriteLine("本周日期:"+nowWeek);
string aBoveWeek = DateTime.Now.AddDays(-7).ToString("yyyy") + WeekOfYear(DateTime.Now.AddDays(-7));
Console.WriteLine("上周日期:" + aBoveWeek);
string aLoveWeek = DateTime.Now.AddDays(7).ToString("yyyy") + WeekOfYear(DateTime.Now.AddDays(7));
Console.WriteLine("下周日期:" + aLoveWeek);
Console.ReadLine();
}
public static string WeekOfYear(DateTime dtime)
{
int weeknum = 0;
DateTime tmpdate = DateTime.Parse(dtime.Year.ToString() + "-1" + "-1");
DayOfWeek firstweek = tmpdate.DayOfWeek;
for (int i = (int)firstweek + 1; i <= dtime.DayOfYear; i = i + 7)
{
weeknum = weeknum + 1;
}
return weeknum.ToString();
}
}
}
-----------------------------------------------------------------------------------------
C#完整的日期处理函数
using System;
namespace qminoa.Common
{
/// <summary >
/// 日期处理函数包
/// </summary >
public class DateUtil
{
//构造函数
public DateUtil()
{
}
/// <summary >返回本年有多少天</summary >
/// <param name="iYear" >年份</param >
/// <returns >本年的天数</returns >
public static int GetDaysOfYear(int iYear)
{
int cnt = 0;
if (IsRuYear(iYear))
{
cnt = 366;//闰年多 1 天 即:2 月为 29 天
}
else
{
cnt = 365;//--非闰年少1天 即:2 月为 28 天
}
return cnt;
}
/// <summary >本年有多少天</summary >
/// <param name="dt" >日期</param >
/// <returns >本天在当年的天数</returns >
public static int GetDaysOfYear(DateTime idt)
{
int n;
//取得传入参数的年份部分,用来判断是否是闰年
n = idt.Year;
if (IsRuYear(n))
{
return 366;//闰年多 1 天 即:2 月为 29 天
}
else
{
return 365; //--非闰年少1天 即:2 月为 28 天
}
}
/// <summary >本月有多少天</summary >
/// <param name="iYear" >年</param >
/// <param name="Month" >月</param >
/// <returns >天数</returns >
public static int GetDaysOfMonth(int iYear, int Month)
{
int days = 0;
switch (Month)
{
case 1:
days = 31;
break;
case 2:
if (IsRuYear(iYear))
{
days = 29;//闰年多 1 天 即:2 月为 29 天
}
else
{
days = 28;//--非闰年少1天 即:2 月为 28 天
}
break;
case 3:
days = 31;
break;
case 4:
days = 30;
break;
case 5:
days = 31;
break;
case 6:
days = 30;
break;
case 7:
days = 31;
break;
case 8:
days = 31;
break;
case 9:
days = 30;
break;
case 10:
days = 31;
break;
case 11:
days = 30;
break;
case 12:
days = 31;
break;
}
return days;
}
/// <summary >本月有多少天</summary >
/// <param name="dt" >日期</param >
/// <returns >天数</returns >
public static int GetDaysOfMonth(DateTime dt)
{
//--------------------------------//
//--从dt中取得当前的年,月信息 --//
//--------------------------------//
int year, month, days = 0;
year = dt.Year;
month = dt.Month;
//--利用年月信息,得到当前月的天数信息。
switch (month)
{
case 1:
days = 31;
break;
case 2:
if (IsRuYear(year))
{
days = 29; //闰年多 1 天 即:2 月为 29 天
}
else
{
days = 28; //--非闰年少1天 即:2 月为 28 天
}
break;
case 3:
days = 31;
break;
case 4:
days = 30;
break;
case 5:
days = 31;
break;
case 6:
days = 30;
break;
case 7:
days = 31;
break;
case 8:
days = 31;
break;
case 9:
days = 30;
break;
case 10:
days = 31;
break;
case 11:
days = 30;
break;
case 12:
days = 31;
break;
}
return days;
}
/// <summary >返回当前日期的星期名称</summary >
/// <param name="dt" >日期</param >
/// <returns >星期名称</returns >
public static string GetWeekNameOfDay(DateTime idt)
{
string dt, week = "";
dt = idt.DayOfWeek.ToString();
switch (dt)
{
case "Mondy":
week = "星期一";
break;
case "Tuesday":
week = "星期二";
break;
case "Wednesday":
week = "星期三";
break;
case "Thursday":
week = "星期四";
break;
case "Friday":
week = "星期五";
break;
case "Saturday":
week = "星期六";
break;
case "Sunday":
week = "星期日";
break;
}
return week;
}
/// <summary >返回当前日期的星期编号</summary >
/// <param name="dt" >日期</param >
/// <returns >星期数字编号</returns >
public static string GetWeekNumberOfDay(DateTime idt)
{
string dt, week = "";
dt = idt.DayOfWeek.ToString();
switch (dt)
{
case "Mondy":
week = "1";
break;
case "Tuesday":
week = "2";
break;
case "Wednesday":
week = "3";
break;
case "Thursday":
week = "4";
break;
case "Friday":
week = "5";
break;
case "Saturday":
week = "6";
break;
case "Sunday":
week = "7";
break;
}
return week;
}
/// <summary >返回两个日期之间相差的天数</summary >
/// <param name="dt" >两个日期参数</param >
/// <returns >天数</returns >
public static int DiffDays(DateTime dtfrm, DateTime dtto)
{
int diffcnt = 0;
//diffcnt = dtto- dtfrm ;
return diffcnt;
}
/// <summary >判断当前日期所属的年份是否是闰年,私有函数</summary >
/// <param name="dt" >日期</param >
/// <returns >是闰年:True ,不是闰年:False</returns >
private static bool IsRuYear(DateTime idt)
{
//形式参数为日期类型
//例如:2003-12-12
int n;
n = idt.Year;
if ((n % 400 == 0) || (n % 4 == 0 && n % 100 != 0))
{
return true;
}
else
{
return false;
}
}
/// <summary >判断当前年份是否是闰年,私有函数</summary >
/// <param name="dt" >年份</param >
/// <returns >是闰年:True ,不是闰年:False</returns >
private static bool IsRuYear(int iYear)
{
//形式参数为年份 例如:2003
int n;
n = iYear;
if ((n % 400 == 0) || (n % 4 == 0 && n % 100 != 0))
{
return true;
}
else
{
return false;
}
}
/// <summary >
/// 将输入的字符串转化为日期。如果字符串的格式非法,则返回当前日期。
/// </summary >
/// <param name="strInput" >输入字符串</param >
/// <returns >日期对象</returns >
public static DateTime ConvertStringToDate(string strInput)
{
DateTime oDateTime;
try
{
oDateTime = DateTime.Parse(strInput);
}
catch (Exception)
{
oDateTime = DateTime.Today;
}
return oDateTime;
}
/// <summary >
/// 将日期对象转化为格式字符串
/// </summary >
/// <param name="oDateTime" >日期对象</param >
/// <param name="strFormat" >
/// 格式:
/// "SHORTDATE"===短日期
/// "LONGDATE"==长日期
/// 其它====自定义格式
/// </param >
/// <returns >日期字符串</returns >
public static string ConvertDateToString(DateTime oDateTime, string strFormat)
{
string strDate = "";
try
{
switch (strFormat.ToUpper())
{
case "SHORTDATE":
strDate = oDateTime.ToShortDateString();
break;
case "LONGDATE":
strDate = oDateTime.ToLongDateString();
break;
default:
strDate = oDateTime.ToString(strFormat);
break;
}
}
catch (Exception)
{
strDate = oDateTime.ToShortDateString();
}
return strDate;
}
/// <summary >
/// 判断是否为合法日期,必须大于1800年1月1日
/// </summary >
/// <param name="strDate" >输入日期字符串</param >
/// <returns >True/False</returns >
public static bool IsDateTime(string strDate)
{
try
{
DateTime oDate = DateTime.Parse(strDate);
if (oDate.CompareTo(DateTime.Parse("1800-1-1")) > 0)
return true;
else
return false;
}
catch (Exception)
{
return false;
}
}
}
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string dayNow = DateTime.Now.ToString("yyyyMMdd");
Console.WriteLine("当前日期:"+dayNow);
string yesterday = DateTime.Now.AddDays(-1).ToString("yyyyMMdd");
Console.WriteLine("昨天日期:" + yesterday);
string tomorry = DateTime.Now.AddDays(1).ToString("yyyyMMdd");
Console.WriteLine("明天日期:" + tomorry);
Console.WriteLine();
string nowMonth = DateTime.Now.ToString("yyyyMM");
Console.WriteLine("本月日期:" + nowMonth);
string aBoveMonth = DateTime.Now.AddMonths(-1).ToString("yyyyMM");
Console.WriteLine("上月日期:" + aBoveMonth);
string aLoveMonth = DateTime.Now.AddMonths(1).ToString("yyyyMM");
Console.WriteLine("下月日期:" + aLoveMonth);
Console.WriteLine();
string nowWeek = DateTime.Now.ToString("yyyy") + WeekOfYear(DateTime.Now);
Console.WriteLine("本周日期:"+nowWeek);
string aBoveWeek = DateTime.Now.AddDays(-7).ToString("yyyy") + WeekOfYear(DateTime.Now.AddDays(-7));
Console.WriteLine("上周日期:" + aBoveWeek);
string aLoveWeek = DateTime.Now.AddDays(7).ToString("yyyy") + WeekOfYear(DateTime.Now.AddDays(7));
Console.WriteLine("下周日期:" + aLoveWeek);
Console.ReadLine();
}
public static string WeekOfYear(DateTime dtime)
{
int weeknum = 0;
DateTime tmpdate = DateTime.Parse(dtime.Year.ToString() + "-1" + "-1");
DayOfWeek firstweek = tmpdate.DayOfWeek;
for (int i = (int)firstweek + 1; i <= dtime.DayOfYear; i = i + 7)
{
weeknum = weeknum + 1;
}
return weeknum.ToString();
}
}
}
-----------------------------------------------------------------------------------------
C#完整的日期处理函数
using System;
namespace qminoa.Common
{
/// <summary >
/// 日期处理函数包
/// </summary >
public class DateUtil
{
//构造函数
public DateUtil()
{
}
/// <summary >返回本年有多少天</summary >
/// <param name="iYear" >年份</param >
/// <returns >本年的天数</returns >
public static int GetDaysOfYear(int iYear)
{
int cnt = 0;
if (IsRuYear(iYear))
{
cnt = 366;//闰年多 1 天 即:2 月为 29 天
}
else
{
cnt = 365;//--非闰年少1天 即:2 月为 28 天
}
return cnt;
}
/// <summary >本年有多少天</summary >
/// <param name="dt" >日期</param >
/// <returns >本天在当年的天数</returns >
public static int GetDaysOfYear(DateTime idt)
{
int n;
//取得传入参数的年份部分,用来判断是否是闰年
n = idt.Year;
if (IsRuYear(n))
{
return 366;//闰年多 1 天 即:2 月为 29 天
}
else
{
return 365; //--非闰年少1天 即:2 月为 28 天
}
}
/// <summary >本月有多少天</summary >
/// <param name="iYear" >年</param >
/// <param name="Month" >月</param >
/// <returns >天数</returns >
public static int GetDaysOfMonth(int iYear, int Month)
{
int days = 0;
switch (Month)
{
case 1:
days = 31;
break;
case 2:
if (IsRuYear(iYear))
{
days = 29;//闰年多 1 天 即:2 月为 29 天
}
else
{
days = 28;//--非闰年少1天 即:2 月为 28 天
}
break;
case 3:
days = 31;
break;
case 4:
days = 30;
break;
case 5:
days = 31;
break;
case 6:
days = 30;
break;
case 7:
days = 31;
break;
case 8:
days = 31;
break;
case 9:
days = 30;
break;
case 10:
days = 31;
break;
case 11:
days = 30;
break;
case 12:
days = 31;
break;
}
return days;
}
/// <summary >本月有多少天</summary >
/// <param name="dt" >日期</param >
/// <returns >天数</returns >
public static int GetDaysOfMonth(DateTime dt)
{
//--------------------------------//
//--从dt中取得当前的年,月信息 --//
//--------------------------------//
int year, month, days = 0;
year = dt.Year;
month = dt.Month;
//--利用年月信息,得到当前月的天数信息。
switch (month)
{
case 1:
days = 31;
break;
case 2:
if (IsRuYear(year))
{
days = 29; //闰年多 1 天 即:2 月为 29 天
}
else
{
days = 28; //--非闰年少1天 即:2 月为 28 天
}
break;
case 3:
days = 31;
break;
case 4:
days = 30;
break;
case 5:
days = 31;
break;
case 6:
days = 30;
break;
case 7:
days = 31;
break;
case 8:
days = 31;
break;
case 9:
days = 30;
break;
case 10:
days = 31;
break;
case 11:
days = 30;
break;
case 12:
days = 31;
break;
}
return days;
}
/// <summary >返回当前日期的星期名称</summary >
/// <param name="dt" >日期</param >
/// <returns >星期名称</returns >
public static string GetWeekNameOfDay(DateTime idt)
{
string dt, week = "";
dt = idt.DayOfWeek.ToString();
switch (dt)
{
case "Mondy":
week = "星期一";
break;
case "Tuesday":
week = "星期二";
break;
case "Wednesday":
week = "星期三";
break;
case "Thursday":
week = "星期四";
break;
case "Friday":
week = "星期五";
break;
case "Saturday":
week = "星期六";
break;
case "Sunday":
week = "星期日";
break;
}
return week;
}
/// <summary >返回当前日期的星期编号</summary >
/// <param name="dt" >日期</param >
/// <returns >星期数字编号</returns >
public static string GetWeekNumberOfDay(DateTime idt)
{
string dt, week = "";
dt = idt.DayOfWeek.ToString();
switch (dt)
{
case "Mondy":
week = "1";
break;
case "Tuesday":
week = "2";
break;
case "Wednesday":
week = "3";
break;
case "Thursday":
week = "4";
break;
case "Friday":
week = "5";
break;
case "Saturday":
week = "6";
break;
case "Sunday":
week = "7";
break;
}
return week;
}
/// <summary >返回两个日期之间相差的天数</summary >
/// <param name="dt" >两个日期参数</param >
/// <returns >天数</returns >
public static int DiffDays(DateTime dtfrm, DateTime dtto)
{
int diffcnt = 0;
//diffcnt = dtto- dtfrm ;
return diffcnt;
}
/// <summary >判断当前日期所属的年份是否是闰年,私有函数</summary >
/// <param name="dt" >日期</param >
/// <returns >是闰年:True ,不是闰年:False</returns >
private static bool IsRuYear(DateTime idt)
{
//形式参数为日期类型
//例如:2003-12-12
int n;
n = idt.Year;
if ((n % 400 == 0) || (n % 4 == 0 && n % 100 != 0))
{
return true;
}
else
{
return false;
}
}
/// <summary >判断当前年份是否是闰年,私有函数</summary >
/// <param name="dt" >年份</param >
/// <returns >是闰年:True ,不是闰年:False</returns >
private static bool IsRuYear(int iYear)
{
//形式参数为年份 例如:2003
int n;
n = iYear;
if ((n % 400 == 0) || (n % 4 == 0 && n % 100 != 0))
{
return true;
}
else
{
return false;
}
}
/// <summary >
/// 将输入的字符串转化为日期。如果字符串的格式非法,则返回当前日期。
/// </summary >
/// <param name="strInput" >输入字符串</param >
/// <returns >日期对象</returns >
public static DateTime ConvertStringToDate(string strInput)
{
DateTime oDateTime;
try
{
oDateTime = DateTime.Parse(strInput);
}
catch (Exception)
{
oDateTime = DateTime.Today;
}
return oDateTime;
}
/// <summary >
/// 将日期对象转化为格式字符串
/// </summary >
/// <param name="oDateTime" >日期对象</param >
/// <param name="strFormat" >
/// 格式:
/// "SHORTDATE"===短日期
/// "LONGDATE"==长日期
/// 其它====自定义格式
/// </param >
/// <returns >日期字符串</returns >
public static string ConvertDateToString(DateTime oDateTime, string strFormat)
{
string strDate = "";
try
{
switch (strFormat.ToUpper())
{
case "SHORTDATE":
strDate = oDateTime.ToShortDateString();
break;
case "LONGDATE":
strDate = oDateTime.ToLongDateString();
break;
default:
strDate = oDateTime.ToString(strFormat);
break;
}
}
catch (Exception)
{
strDate = oDateTime.ToShortDateString();
}
return strDate;
}
/// <summary >
/// 判断是否为合法日期,必须大于1800年1月1日
/// </summary >
/// <param name="strDate" >输入日期字符串</param >
/// <returns >True/False</returns >
public static bool IsDateTime(string strDate)
{
try
{
DateTime oDate = DateTime.Parse(strDate);
if (oDate.CompareTo(DateTime.Parse("1800-1-1")) > 0)
return true;
else
return false;
}
catch (Exception)
{
return false;
}
}
}
相关文章推荐
- 如何在Java中获取当前代码行行号和文件名
- 使用C++获取文件路径,已获取当前路径为基础
- 论坛:获取当前原始请求中的远程IP地址
- 获取当前应用的版本号和当前android系统的版本号
- 获取当前View
- 如何解决java.util.Date 获取的不是当前时间
- python学习之获取当前时间的方法(可以任意取时间的任何一个对象显示)
- cocos2dx 获取当前时间
- C#获取当前日期时间
- 如何获取当前网页全部HTML代码
- 获取当前ios系统的版本信息
- JavaScript获取当前页面访问地址/根目录/等
- js获取载入当前页面的来源
- QTP中获取当前系统分辨率
- iOS获取当前系统的相关信息
- 获取当前文件路径
- js获取当前月的第一天和最后一天
- Selenium-获取当前窗口句柄与切换回原窗口句柄
- Cocos2d-x 获取系统当前时间
- 获取当前的日期时间 格式“yyyy-MM-dd HH:MM:SS"