和历与西历之间的转换
/// <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;
}