开放式基金

来源:互联网 发布:中国房价未来走势知乎 编辑:程序博客网 时间:2024/04/28 11:21
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(01);

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

                FoundationData fd;

                aFoundationInfo[
0= aFoundationInfo[0].Substring(aFoundationInfo[0].IndexOf('=')+26);

                

                
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;

        }

    }

}

 
 
原创粉丝点击