您的位置:首页 > 其它

开放式基金

2007-02-26 18:34 232 查看
using System;

using System.Text;

using System.Text.RegularExpressions;

using System.Net;

using System.IO;

using System.Collections;

namespace SEI.DL88250.SourceCodes.CSharp

{

struct FoundationData

{

public string _code;

public string _name;

public string _tDay;

public string _tSub1Day;

public string _growRate;

public string _pureValue;

}

class OpenFoundation

{

public static string[] _foundationNames

= { "汇添富均衡增长",

"景顺长城新兴成长",

"华安宏利",

"易方达策略成长2号",

"南方绩优成长",

"南方避险"

};

public static double[] _originalPureValue

= { 1.8271,

1.8120,

1.6818,

1.596,

1.0,

1.0

};

public static double[] _investment

= { 50000,

20000,

100000,

60000,

60000,

11000

};

public static double[] _shares

= { _investment[0] / _originalPureValue[0],

_investment[1] / _originalPureValue[1],

_investment[2] / _originalPureValue[2],

_investment[3] / _originalPureValue[3],

_investment[4] / _originalPureValue[4],

_investment[5] / _originalPureValue[5],

};

static void Main(string[] args)

{

{

()

}

#region 下载数据

string pageHtml = "";

try

{

WebClient aWebClient = new WebClient();

// 获取或设置用于对向Internet资源的请求进行身份验证的网络凭据。

aWebClient.Credentials = CredentialCache.DefaultCredentials;

// 从指定网站下载数据

Byte[] pageData = aWebClient.DownloadData("http://finance.sina.com.cn/realstock/js/openfundjs.js");

// 如果获取网站页面采用的是GB2312,则使用这句

pageHtml = Encoding.Default.GetString(pageData);

// 如果获取网站页面采用的是UTF-8,则使用这句

// string pageHtml = Encoding.UTF8.GetString(pageData);

}

catch (WebException webE)

{

Console.WriteLine(webE.Message.ToString());

}

#endregion 下载数据结束

#region 数据整理

pageHtml = pageHtml.Replace(""", "");

string[] data = pageHtml.Split(';');

ArrayList foundataArray = new ArrayList();

for (int i = 2; i < data.Length - 1; i++)// data[0,1]内有不相关内容

{

data[i] = data[i].Remove(0, 1);

string[] aFoundationInfo = data[i].Split('|');

FoundationData fd;

aFoundationInfo[0] = aFoundationInfo[0].Substring(aFoundationInfo[0].IndexOf('=')+2, 6);



for (int j = 0; j < _foundationNames.Length; j++)

{

if (aFoundationInfo[1] == _foundationNames[j])

{

fd._code = aFoundationInfo[0];

fd._name = aFoundationInfo[1];

fd._tDay = aFoundationInfo[2];

fd._tSub1Day = aFoundationInfo[3];

fd._growRate = aFoundationInfo[4];

fd._pureValue = aFoundationInfo[5];

foundataArray.Add(fd);

}

}

}

#endregion 数据整理结束



#region 打印基金信息

Console.WriteLine("编号 名称 昨日净值 前日净值 增长率 累积净值");

foreach (FoundationData of in foundataArray)

{

Console.WriteLine("{0}{1}{2}{3}{4}{5}",

PadRightTrueLen(of._code, 9, ' ', false),

PadRightTrueLen(of._name, 20, ' ', false),

PadRightTrueLen(of._tDay, 16, ' ', false),

PadRightTrueLen(of._tSub1Day, 16, ' ', false),

PadRightTrueLen(of._growRate, 15, ' ', false),

of._pureValue);

}

#endregion 打印基金信息结束

#region 投资回报计算

#endregion 投资回报计算结束

}



public static int TrueLength(string str)

{

int lenTotal = 0;

int n = str.Length;

string strWord = "";

int asc;

for (int i = 0; i < n; i++)

{

strWord = str.Substring(i, 1);

asc = Convert.ToChar(strWord);

if (asc < 0 || asc > 127)

{

lenTotal = lenTotal + 2;

}

else

{

lenTotal = lenTotal + 1;

}

}

return lenTotal;

}

public static string PadRightTrueLen(string strOriginal, int maxTrueLength, char chrPad, bool blnCutTail)

{

string strNew = strOriginal;

if (strOriginal == null || maxTrueLength <= 0)

{

strNew = "";

return strNew;

}

int trueLen = TrueLength(strOriginal);

if (trueLen > maxTrueLength)

{

if (blnCutTail)

{

for (int i = strOriginal.Length - 1; i > 0; i--)

{

strNew = strNew.Substring(0, i);

if (TrueLength(strNew) == maxTrueLength)

{

break;

}

else if (TrueLength(strNew) < maxTrueLength)

{

strNew += chrPad.ToString();

break;

}

}

}

}

else// 填充

{

for (int i = 0; i < maxTrueLength - trueLen; i++)

{

strNew += chrPad.ToString();

}

}

return strNew;

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: