那个高手可以把C#转成VFP
C#实现五行号码属性变化的万年历方法 能否转成VFP代码C#代码如下
/// 获取六十甲子字符列表
/// </summary>
/// <returns></returns>
private List<string> GetJiazhi()
{
string str = @"甲子 乙丑 丙寅 丁卯 戊辰 己巳 庚午 辛未 壬申 癸酉
甲戌 乙亥 丙子 丁丑 戊寅 己卯 庚辰 辛巳 壬午 癸未
甲申 乙酉 丙戌 丁亥 戊子 己丑 庚寅 辛卯 壬辰 癸巳
甲午 乙未 丙申 丁酉 戊戌 己亥 庚子 辛丑 壬寅 癸卯
甲辰 乙巳 丙午 丁未 戊申 己酉 庚戌 辛亥 壬子 癸丑
甲寅 乙卯 丙辰 丁巳 戊午 己未 庚申 辛酉 壬戌 癸亥";
List<string> list = new List<string>();
foreach (string item in str.Split(' '))
{
if (!string.IsNullOrEmpty(item))
{
list.Add(item.Replace("\r\n", ""));
}
}
return list;
}
/// <summary>
/// 根据甲子获取纳音
/// </summary>
/// <param name="jiazhi"></param>
/// <returns></returns>
private string GetNayin(string jiazhi)
{
string str = @"甲子乙丑海中金 丙寅丁卯炉中火 戊辰己巳大林木 庚午辛未路旁土 壬申癸酉剑锋金
甲戌乙亥山头火 丙子丁丑涧下水 戊寅己卯城头土 庚辰辛巳白腊金 壬午癸未杨柳木
甲申乙酉泉中水 丙戌丁亥屋上土 戊子己丑劈雳火 庚寅辛卯松柏木 壬辰癸巳长流水
甲午乙未沙中金 丙申丁酉山下火 戊戌己亥平地木 庚子辛丑壁上土 壬寅癸卯金箔金
甲辰乙巳佛灯火 丙午丁未天河水 戊申己酉大驿土 庚戌辛亥插环金 壬子癸丑桑枝木
甲寅乙卯大溪水 丙辰丁巳沙中土 戊午己未天上火 庚申辛酉石榴木 壬戌癸亥大海水 ";
int iStart = str.IndexOf(jiazhi);
string leftStr = str.Substring(iStart);
int iSpace = leftStr.IndexOf(' ');
leftStr = leftStr.Substring(0, iSpace);
leftStr = leftStr.Substring(leftStr.Length-1, 1);
return leftStr;
}
List<string> jiazhiList = GetJiazhi();
//纳音列表
List<string> nayinList = new List<string>();
//初始化五行数字字符串列表
Dictionary<string, string> wuhanStrList = new Dictionary<string, string>() { };
wuhanStrList.Add("金", "");
wuhanStrList.Add("木", "");
wuhanStrList.Add("水", "");
wuhanStrList.Add("火", "");
wuhanStrList.Add("土", "");
for (int i = 1; i <= 60; i++)
{
string jiazhi = jiazhiList[i - 1];
string nayin = GetNayin(jiazhi);
nayinList.Add(nayin);
//this.textBox1.AppendText(nayin + Environment.NewLine);
}
for (int i = 1; i <= 49; i++)
{
int currentYear = chineseDate.GetYear(this.dateTimePicker1.Value);
int index = currentYear - 1922 - i - 1;
string itemName = nayinList[index % 60];
if (itemName == "金")
{
wuhanStrList["金"] += i.ToString("D2") + ",";
}
else if (itemName == "木")
{
wuhanStrList["木"] += i.ToString("D2") + ",";
}
else if (itemName == "水")
{
wuhanStrList["水"] += i.ToString("D2") + ",";
}
else if (itemName == "火")
{
wuhanStrList["火"] += i.ToString("D2") + ",";
}
else if (itemName == "土")
{
wuhanStrList["土"] += i.ToString("D2") + ",";
}
}
foreach (string key in wuhanStrList.Keys)
{
this.textBox1.AppendText(string.Format("{0}:{1}\r\n", key, wuhanStrList[key]));
}
[ 本帖最后由 xie1423 于 2013-8-22 14:57 编辑 ]