-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathSection.cs
107 lines (92 loc) · 2.41 KB
/
Section.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
using System;
using System.Collections;
using System.Text;
namespace Subindex
{
/// <summary>
///
/// </summary>
public class Section
{
public Section()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
public ArrayList Items=new ArrayList();
public DateTime BeginTime;
public DateTime EndTime;
public TimeSpan TimeBaseLine;
public string StyleFormat;
public string this[int index]
{
get {return Items[index].ToString();}
}
public DateTime GetBeginTime()
{return BeginTime.Add(TimeBaseLine);}
// protected string Text(string WrapSplit)
// {
// string stmp="";
// if (WrapSplit==null) WrapSplit=Pub.Limit;
// for (int i=1;i<Items.Count;i++)
// stmp+=WrapSplit+Items[i].ToString();
// return Items.Count>0?Items[0].ToString()+stmp:stmp;
// }
public string Text(bool AutoWrap,bool AddFormat)
{
StringBuilder sb=new StringBuilder();
string WrapSplit=AutoWrap?Pub.WrapSplit:Pub.Limit;
for (int i=1;i<Items.Count;i++)
sb.Append(WrapSplit+Items[i].ToString());
if (Items.Count>0) sb.Insert(0,Items[0].ToString());
return (AddFormat&&StyleFormat!=null?StyleFormat:"") + sb.ToString();
}
protected string Time(int Area)
{ DateTime bd=BeginTime;
DateTime ed=EndTime;
switch (Area)
{
case 0:
bd=bd.Add(TimeBaseLine);
ed=ed.Add(TimeBaseLine);
break;
case 1:
bd=bd.Add(TimeBaseLine);
break;
case 2:
ed=ed.Add(TimeBaseLine);
break;
}
return bd.ToString(Pub.Format)+" "+Pub.SrtSymbol+" "+ed.ToString(Pub.Format);
}
// public string ToString(int Index,int Area,bool AutoWrap)
// {
// return Index.ToString()+Pub.Limit+Time(Area)+Pub.Limit+Text(AutoWrap)+Pub.Limit+Pub.Limit;
// }
// protected string Time()
// {
// return BeginTime.Add(TimeBaseLine).ToString(Pub.Format)+Pub.SrtSymbol+EndTime.Add(TimeBaseLine).ToString(Pub.Format);
// }
public string ToString(int Index,int Area ,bool AutoWrap)
{
return Index.ToString()+Pub.Limit+Time(Area)+Pub.Limit+Text(AutoWrap,Pub.KeepFormat)+Pub.Limit+Pub.Limit;
}
public Section Copy()
{
Section st=new Section();
st.BeginTime=this.BeginTime;
st.EndTime=this.EndTime;
st.StyleFormat=this.StyleFormat;
st.TimeBaseLine=this.TimeBaseLine;
if (Pub.AutoWrap)
st.Items.Add(this.Text(true,false));
else
{
for (int i=0;i<this.Items.Count;i++)
st.Items.Add(this.Items[i].ToString());
}
return st;
}
}
}