和历与西历之间的转换

/// <summary>
/// 和暦から西暦に変換用関数
/// </summary>
/// <param name="pStartDate">天皇の誕生日(西暦)(yyyy/MM/dd)</param>
/// <param name="pChangeDate">変換の和暦データ(yyMM)</param>
/// <returns>変換後の西暦データ(yyyy/MM/dd)</returns>
public static string GetWorldDate(string pStartDate, string pChangeDate)
{
string vJapanDate = WorldToJapanDate(pStartDate, "gg yy/MM/dd");

string vNewJapanDate = vJapanDate.Substring(0, 3) + pChangeDate.Substring(0, 2) + "/" + pChangeDate.Substring(2, 2) + "/";

if(vJapanDate.StartsWith(vNewJapanDate))
{
vNewJapanDate += vJapanDate.Substring(9);
}
else
{
vNewJapanDate += "01";
}

return JapanToWorldDate(vNewJapanDate, "yyyy/MM/dd");
}

/// <summary>
///
/// </summary>
/// <param name="pDate"></param>
/// <param name="pFormat"></param>
/// <returns></returns>
public static string WorldToJapanDate(string pDate, string pFormat)
{
CultureInfo vCurrentInfo = new CultureInfo("ja-JP", true);

vCurrentInfo.DateTimeFormat.Calendar = new JapaneseCalendar();

DateTime vCurrentDate = Convert.ToDateTime(pDate);

string vReturnDate = vCurrentDate.ToString(pFormat, vCurrentInfo.DateTimeFormat);

return vReturnDate;
}

public static string JapanToWorldDate(string pDate, string pFormat)
{
CultureInfo vCurrentInfo = new CultureInfo("ja-JP", true);

vCurrentInfo.DateTimeFormat.Calendar = new JapaneseCalendar();

DateTime vCurrentDate = Convert.ToDateTime(pDate, vCurrentInfo.DateTimeFormat);

string vReturnDate = vCurrentDate.ToString(pFormat, DateTimeFormatInfo.InvariantInfo);

return vReturnDate;
}

posted on 2010-06-12 15:59  RIVERSPIRIT  阅读(1130)  评论(0)    收藏  举报