65.9K
CodeProject 正在变化。 阅读更多。
Home

C# 中的波斯日历 (PersianDateTime)

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.93/5 (33投票s)

2014年12月5日

CPOL

1分钟阅读

viewsIcon

113796

downloadIcon

3675

一个 C# 库,可以像 DateTime 一样轻松使用 PersianCalendar。

引言

您可以使用此库创建 PersianDateTime,就像使用 DateTime 一样简单。
实际上,此库是 DateTimePersianCalendar 的包装器。
此库可以创建和解析大多数流行的波斯日期时间字符串。

最新版本位于 www.github.com/Mds92/MD.PersianDateTime

背景

我之前见过 PersianDateTime,它很棒,您也可以使用它。

使用代码

通过 NuGet 安装此库

Install-Package MD.PersianDateTime

您可以像以下这样使用它

static void Main(string[] args)
{
	PersianDateTime persianDateTime = new PersianDateTime(DateTime.Now);
	Console.WriteLine(persianDateTime);
	Console.ReadKey();
}

此外,此库可以解析一些波斯日期时间,如下所示

13930914
"1393/09/14 12:20:30"
"93/1/1 3:15 ب.ظ"
"1393/02/01 02:03:10:30"
"1393/09/14 12:20:30:300"
"1393/09/14 12:20 ب.ظ"
"1393/09/14"
"د 24 آذر 1393 4:2:5:5 ب.ظ"
"24 آذر 1393"
"جمعه 93/2/1 ساعت 3:2 ب.ظ"
"جمعه 14 آذر 1393 ساعت 11:50:30 ب.ظ"
"جمعه 14 آذر 1393 ساعت 16:50:30"

您可以直接使用此类代替 DateTime

static void Main(string[] args)
{
	PersianDateTime persianDateTime = PersianDateTime.Parse("1393/09/15 12:20:30");
	PrintDateTime(persianDateTime);
	Console.ReadKey();
}

static void PrintDateTime(DateTime dateTime)
{
	Console.WriteLine(dateTime);
}

您可以将所有数字更改为 波斯数字,方法是将 EnglishNumber 属性设置为 false(默认值为 false)

一些输出

/// <summary>
/// 1393/09/14   13:49:40
/// </summary>
public override string ToString()

/// <summary>
/// 1393/09/14
/// </summary>
public string ToShortDateString()

/// <summary>
/// 13930914
/// It's greate to save in sql if you want to save persian date in database
/// </summary>
public int ToShortDateInt()

/// <summary>
/// ج 14 آذر 93
/// </summary>
public string ToShortDate1String()

/// <summary>
/// جمعه، 14 آذر 1393
/// </summary>
public string ToLongDateString()

/// <summary>
/// جمعه، 14 آذر 1393 ساعت 13:50:27
/// </summary>
public string ToLongDateTimeString()

/// <summary>
/// جمعه، 14 آذر 1393 13:50
/// </summary>
public string ToShortDateTimeString()

/// <summary>
/// 01:50 ب.ظ
/// </summary>
public string ToShortTimeString()

/// <summary>
/// 01:50:20 ب.ظ
/// </summary>
public string ToLongTimeString()

/// <summary>
/// Supported format
/// yyyy: سال چهار رقمی
/// yy: سال دو رقمی
/// MMMM: نام فارسی ماه
/// MM: عدد دو رقمی ماه
/// M: عدد یک رقمی ماه
/// dddd: نام فارسی روز هفته
/// dd: عدد دو رقمی روز ماه
/// d: عدد یک رقمی روز ماه
/// HH: ساعت دو رقمی با فرمت 00 تا 24
/// H: ساعت یک رقمی با فرمت 0 تا 24
/// hh: ساعت دو رقمی با فرمت 00 تا 12
/// h: ساعت یک رقمی با فرمت 0 تا 12
/// mm: عدد دو رقمی دقیقه
/// m: عدد یک رقمی دقیقه
/// ss: ثانیه دو رقمی
/// s: ثانیه یک رقمی
/// fff: میلی ثانیه 3 رقمی
/// ff: میلی ثانیه 2 رقمی
/// f: میلی ثانیه یک رقمی
/// tt: ب.ظ یا ق.ظ
/// t: حرف اول از ب.ظ یا ق.ظ
/// </summary>
public string ToString(string format)

/// <summary>
/// نمایش زمان سپری شده از زمان حال 
/// مثال: 2 دقیقه قبل 
/// </summary>
public string ElapsedTime()

/// <summary>
/// نمایش فقط تاریخ
/// مثال: 2014/04/13
/// </summary>
public DateTime Date

历史

第一篇帖子:2014 年 12 月 6 日
2014 年 12 月 7 日:更新源代码
2014 年 12 月 8 日:更新源代码
2014 年 12 月 9 日:更新源代码(添加格式)
2014 年 12 月 17 日:改进了解析器
2014 年 12 月 19 日:修复了一些错误
2014 年 12 月 21 日:添加了一些方法
2014 年 12 月 22 日:更新源代码
2014 年 12 月 23 日:更新源代码
2014 年 12 月 27 日:更新源代码
2015 年 1 月 3 日:支持解析中的阿拉伯字符
2015 年 1 月 12 日:添加了一些有用的属性
2015 年 4 月 13 日:添加了 Date 属性
2015 年 5 月 17 日:转换为结构体并修复了一些错误
2015 年 7 月 11 日:添加了 GetStartDayOfRamadan 方法 并修复了一些错误
2015 年 7 月 27 日修复 `GetWeekOfMonth` 中的一个错误
2015 年 9 月 5 日:修复了一些错误
 

 

© . All rights reserved.