如何在压延工具中从公历转换为回历 [英] How do i convert from Gregorian to Hijri in calender tools
本文介绍了如何在压延工具中从公历转换为回历的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
using System.Globalization;
protected void Page_Load(object sender, EventArgs e)
{
HijriCalendar hijri = new HijriCalendar();
CultureInfo culture = new CultureInfo("ar-SA");
culture.DateTimeFormat.Calendar = hijri;
this.Culture = culture.ToString();
}
推荐答案
检查此解决方案
首先使用此类
探索课程,您会发现需要从hijri转换为Gregorian,反之亦然
Hi ,
Check this Solution
First use this class
Explore the class you will find what you need convert from hijri to Gregorian and vice versa
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Globalization;
using System.Threading;
/// <summary>
/// Summary description for ConvertDate
/// </summary>
public class ConvertDate
{
public ConvertDate()
{
//
// TODO: Add constructor logic here
//
}
private HttpContext cur =HttpContext.Current;
private const int startGreg = 1900;
private const int endGreg = 2100;
private string[] allFormats ={"yyyy/MM/dd","yyyy/M/d",
"dd/MM/yyyy","d/M/yyyy",
"dd/M/yyyy","d/MM/yyyy","yyyy-MM-dd",
"yyyy-M-d","dd-MM-yyyy","d-M-yyyy",
"dd-M-yyyy","d-MM-yyyy","yyyy MM dd",
"yyyy M d","dd MM yyyy","d M yyyy",
"dd M yyyy","d MM yyyy"};
private CultureInfo arCul =new CultureInfo("ar-SA");
private CultureInfo enCul=new CultureInfo("en-US");
private HijriCalendar h = new HijriCalendar();
private GregorianCalendar g = new GregorianCalendar(GregorianCalendarTypes.USEnglish);
public bool IsHijri(string hijri)
{
if (hijri.Length <= 0)
{
cur.Trace.Warn("IsHijri Error: Date String is Empty");
return false;
}
try
{
DateTime tempDate = DateTime.ParseExact(hijri, allFormats,
arCul.DateTimeFormat, DateTimeStyles.AllowWhiteSpaces);
if (tempDate.Year >= startGreg && tempDate.Year <= endGreg)
return true;
else
return false;
}
catch (Exception ex)
{
cur.Trace.Warn("IsHijri Error :" + hijri.ToString() + "\n" +
ex.Message);
return false;
}
}
/// <summary>
/// Check if string is Gregorian date and then return true
/// </summary>
/// <PARAM name="greg"></PARAM>
/// <returns></returns>
public bool IsGreg(string greg)
{
if (greg.Length <= 0)
{
cur.Trace.Warn("IsGreg :Date String is Empty");
return false;
}
try
{
DateTime tempDate = DateTime.ParseExact(greg, allFormats,
enCul.DateTimeFormat, DateTimeStyles.AllowWhiteSpaces);
if (tempDate.Year >= startGreg && tempDate.Year <= endGreg)
return true;
else
return false;
}
catch (Exception ex)
{
cur.Trace.Warn("IsGreg Error :" + greg.ToString() + "\n" + ex.Message);
return false;
}
}
/// <summary>
/// Return Formatted Hijri date string
/// </summary>
/// <PARAM name="date"></PARAM>
/// <PARAM name="format"></PARAM>
/// <returns></returns>
public string FormatHijri(string date, string format)
{
if (date.Length <= 0)
{
cur.Trace.Warn("Format :Date String is Empty");
return "";
}
try
{
DateTime tempDate = DateTime.ParseExact(date,
allFormats, arCul.DateTimeFormat, DateTimeStyles.AllowWhiteSpaces);
return tempDate.ToString(format, arCul.DateTimeFormat);
}
catch (Exception ex)
{
cur.Trace.Warn("Date :\n" + ex.Message);
return "";
}
}
/// <summary>
/// Returned Formatted Gregorian date string
/// </summary>
/// <PARAM name="date"></PARAM>
/// <PARAM name="format"></PARAM>
/// <returns></returns>
public string FormatGreg(string date, string format)
{
if (date.Length <= 0)
{
cur.Trace.Warn("Format :Date String is Empty");
return "";
}
try
{
DateTime tempDate = DateTime.ParseExact(date, allFormats,
enCul.DateTimeFormat, DateTimeStyles.AllowWhiteSpaces);
return tempDate.ToString(format, enCul.DateTimeFormat);
}
catch (Exception ex)
{
cur.Trace.Warn("Date :\n" + ex.Message);
return "";
}
}
/// <summary>
/// Return Today Gregorian date and return it in yyyy/MM/dd format
/// </summary>
/// <returns></returns>
public string GDateNow()
{
try
{
return DateTime.Now.ToString("yyyy/MM/dd", enCul.DateTimeFormat);
}
catch (Exception ex)
{
cur.Trace.Warn("GDateNow :\n" + ex.Message);
return "";
}
}
/// <summary>
/// Return formatted today Gregorian date based on your format
/// </summary>
/// <PARAM name="format"></PARAM>
/// <returns></returns>
public string GDateNow(string format)
{
try
{
return DateTime.Now.ToString(format, enCul.DateTimeFormat);
}
catch (Exception ex)
{
cur.Trace.Warn("GDateNow :\n" + ex.Message);
return "";
}
}
/// <summary>
/// Return Today Hijri date and return it in yyyy/MM/dd format
/// </summary>
/// <returns></returns>
public string HDateNow()
{
try
{
return DateTime.Now.ToString("yyyy/MM/dd", arCul.DateTimeFormat);
}
catch (Exception ex)
{
cur.Trace.Warn("HDateNow :\n" + ex.Message);
return "";
}
}
/// <summary>
/// Return formatted today hijri date based on your format
/// </summary>
/// <PARAM name="format"></PARAM>
/// <returns></returns>
public string HDateNow(string format)
{
try
{
return DateTime.Now.ToString(format, arCul.DateTimeFormat);
}
catch (Exception ex)
{
cur.Trace.Warn("HDateNow :\n" + ex.Message);
return "";
}
}
/// <summary>
/// Convert Hijri Date to it's equivalent Gregorian Date
/// </summary>
/// <PARAM name="hijri"></PARAM>
/// <returns></returns>
public string HijriToGreg(string hijri)
{
if (hijri.Length <= 0)
{
cur.Trace.Warn("HijriToGreg :Date String is Empty");
return "";
}
try
{
DateTime tempDate = DateTime.ParseExact(hijri, allFormats,
arCul.DateTimeFormat, DateTimeStyles.AllowWhiteSpaces);
return tempDate.ToString("dd/MM/yyyy", enCul.DateTimeFormat);
}
catch (Exception ex)
{
cur.Trace.Warn("HijriToGreg :" + hijri.ToString() + "\n" + ex.Message);
return "";
}
}
/// <summary>
/// Convert Hijri Date to it's equivalent Gregorian Date
/// and return it in specified format
/// </summary>
/// <PARAM name="hijri"></PARAM>
/// <PARAM name="format"></PARAM>
/// <returns></returns>
public string HijriToGreg(string hijri, string format)
{
if (hijri.Length <= 0)
{
cur.Trace.Warn("HijriToGreg :Date String is Empty");
return "";
}
try
{
DateTime tempDate = DateTime.ParseExact(hijri,
allFormats, arCul.DateTimeFormat, DateTimeStyles.AllowWhiteSpaces);
return tempDate.ToString(format, enCul.DateTimeFormat);
}
catch (Exception ex)
{
cur.Trace.Warn("HijriToGreg :" + hijri.ToString() + "\n" + ex.Message);
return "";
}
}
/// <summary>
/// Convert Gregoian Date to it's equivalent Hijir Date
/// </summary>
/// <PARAM name="greg"></PARAM>
/// <returns></returns>
public string GregToHijri(string greg)
{
if (greg.Length <= 0)
{
cur.Trace.Warn("GregToHijri :Date String is Empty");
return "";
}
try
{
DateTime tempDate = DateTime.ParseExact(greg, allFormats,
enCul.DateTimeFormat, DateTimeStyles.AllowWhiteSpaces);
return tempDate.ToString("yyyy/MM/dd", arCul.DateTimeFormat);
}
catch (Exception ex)
{
cur.Trace.Warn("GregToHijri :" + greg.ToString() + "\n" + ex.Message);
return "";
}
}
/// <summary>
/// Convert Hijri Date to it's equivalent Gregorian Date and
/// return it in specified format
/// </summary>
/// <PARAM name="greg"></PARAM>
/// <PARAM name="format"></PARAM>
/// <returns></returns>
public string GregToHijri(string greg, string format)
{
if (greg.Length <= 0)
{
cur.Trace.Warn("GregToHijri :Date String is Empty");
return "";
}
try
{
DateTime tempDate = DateTime.ParseExact(greg, allFormats,
enCul.DateTimeFormat, DateTimeStyles.AllowWhiteSpaces);
return tempDate.ToString(format, arCul.DateTimeFormat);
}
catch (Exception ex)
{
cur.Trace.Warn("GregToHijri :" + greg.ToString() + "\n" + ex.Message);
return "";
}
}
/// <summary>
/// Return Gregrian Date Time as digit stamp
/// </summary>
/// <returns></returns>
public string GTimeStamp()
{
return GDateNow("yyyyMMddHHmmss");
}
/// <summary>
/// Return Hijri Date Time as digit stamp
/// </summary>
/// <returns></returns>
public string HTimeStamp()
{
return HDateNow("yyyyMMddHHmmss");
}
/// <summary>
/// Compare two instaces of string date
/// and return indication of thier values
/// </summary>
/// <PARAM name="d1"></PARAM>
/// <PARAM name="d2"></PARAM>
/// <returns>positive d1 is greater than d2,
/// negative d1 is smaller than d2, 0 both are equal</returns>
public int Compare(string d1, string d2)
{
try
{
DateTime date1 = DateTime.ParseExact(d1, allFormats,
arCul.DateTimeFormat, DateTimeStyles.AllowWhiteSpaces);
DateTime date2 = DateTime.ParseExact(d2, allFormats,
arCul.DateTimeFormat, DateTimeStyles.AllowWhiteSpaces);
return DateTime.Compare(date1, date2);
}
catch (Exception ex)
{
cur.Trace.Warn("Compare :" + "\n" + ex.Message);
return -1;
}
}
}
Default.aspx
Default.aspx
<div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
</div>
protected void Button1_Click(object sender, EventArgs e)
{
ConvertDate Cd = new ConvertDate();
if (Cd.IsGreg(TextBox1.Text))
{
string DateHijri = Cd.GregToHijri(TextBox1.Text);
Response.Write("<script>alert('" + DateHijri + "')</script>");
}
}
最好的问候
米特瓦里(M.Mitwalli)
Best Regards
M.Mitwalli
这篇关于如何在压延工具中从公历转换为回历的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文