如果要换成200506,06-2005,2005-6-6或更多的该怎么办呢? 我们要用到:DateTime.ToString的方法(String, IFormatProvider)
using System;
using System.Globalization; String Format=\
DateTime date=DataTime.Now;
Response.Write(date.ToString(Format, DateTimeFormatInfo.InvariantInfo)); 结果输出:
Thursday, June 16, 2005
参数Format格式详细用法 格式字符 关联属性/说明 d ShortDatePattern D LongDatePattern
f 完整日期和时间(长日期和短时间) F FullDateTimePattern(长日期和长时间) g 常规(短日期和短时间) G 常规(短日期和长时间) m、M MonthDayPattern r、R RFC1123Pattern
s 使用当地时间的SortableDateTimePattern(基于 ISO 8601) t ShortTimePattern T LongTimePattern
u UniversalSortableDateTimePattern用于显示通用时间的格式 U 使用通用时间的完整日期和时间(长日期和长时间) y、Y YearMonthPattern
下表列出了可被合并以构造自定义模式的模式。这些模式是区分大小写的,如识别“MM”,但不识别“mm”。如果自定义模式包含空白字符或用单引号括起来的字符,则输出字符串页也将包含这些字符。未定义为格式模式的一部分或未定义为格式字符的字符按其原义复制。
格式模式 说明
d 月中的某一天。一位数的日期没有前导零。 dd 月中的某一天。一位数的日期有一个前导零。
ddd 周中某天的缩写名称,在 AbbreviatedDayNames 中定义。 dddd 周中某天的完整名称,在 DayNames 中定义。 M 月份数字。一位数的月份没有前导零。 MM 月份数字。一位数的月份有一个前导零。
MMM 月份的缩写名称,在 AbbreviatedMonthNames 中定义。 MMMM 月份的完整名称,在 MonthNames 中定义。
y 不包含纪元的年份。如果不包含纪元的年份小于 10,则显示不具有前导零的年份。
yy 不包含纪元的年份。如果不包含纪元的年份小于 10,则显示具有前导零的年份。 yyyy 包括纪元的四位数的年份。
gg 时期或纪元。如果要设置格式的日期不具有关联的时期或纪元字符串,则忽略该模式。
h 12 小时制的小时。一位数的小时数没有前导零。 hh 12 小时制的小时。一位数的小时数有前导零。 H 24 小时制的小时。一位数的小时数没有前导零。 HH 24 小时制的小时。一位数的小时数有前导零。 m 分钟。一位数的分钟数没有前导零。 mm 分钟。一位数的分钟数有一个前导零。 s 秒。一位数的秒数没有前导零。 ss 秒。一位数的秒数有一个前导零。
f 秒的小数精度为一位。其余数字被截断。 ff 秒的小数精度为两位。其余数字被截断。 fff 秒的小数精度为三位。其余数字被截断。 ffff 秒的小数精度为四位。其余数字被截断。 fffff 秒的小数精度为五位。其余数字被截断。 ffffff 秒的小数精度为六位。其余数字被截断。 fffffff 秒的小数精度为七位。其余数字被截断。
t 在AMDesignator或PMDesignator中定义的AM/PM指示项的第一个字符(如果存在)。
tt 在AMDesignator或PMDesignator中定义的AM/PM指示项(如果存在)。 z 时区偏移量(“+”或“-”后面仅跟小时)。一位数的小时数没有前导零。例如,太平洋标准时间是“-8”。 zz 时区偏移量(“+”或“-”后面仅跟小时)。一位数的小时数有前导零。例如,太平洋标准时间是“-08”。 zzz 完整时区偏移量(“+”或“-”后面跟有小时和分钟)。一位数的小时数和分钟数有前导零。例如,太平洋标准时间是“-08:00”。
: 在TimeSeparator中定义的默认时间分隔符。 / 在DateSeparator中定义的默认日期分隔符。 % c 其中c是格式模式(如果单独使用)。如果格式模式与原义字符或其他格式模式合并,则可以省略“%”字符。
\\ c 其中c是任意字符。照原义显示字符。若要显示反斜杠字符,请使用“\\\\”。
只有上面第二个表中列出的格式模式才能用于创建自定义模式;在第一个表中列出的标准格式字符不能用于创建自定义模式。自定义模式的长度至少为两个字符;例如:
DateTime.ToString( \返回DateTime值;“d”是标准短日期模式。 DateTime.ToString( \返回月中的某天;“%d”是自定义模式。 DateTime.ToString( \\返回后面跟有一个空白字符的月中的某天;“d”是自定义模式。
比较方便的是,上面的参数可以随意组合,并且不会出错,多试试,肯定会找到你要的时间格式。
如要得到“2005年06月”这样格式的时间。
IntegerInput控件和DoubleInput控件的用法类似
(1)关于格式的控制,这两个控件有好多地方与DateTimeInput控件相似,这里介绍一个不同的。
控件激活前是这样的
,但是,当控件激活后,就变成这样的
,然后,就和其他设置的IntegerInput控件的用法一致了。
(2)图标
表示“自增/自减”,与属性
有关,而增量与属性有关。
(3)与增量有关:怎么实现任意步长? (4)数字的格式化 内置类型的字母格式
有一种格式命令以单个字母开头,表示下列设置: G——常规,E或F中较短的 F——浮点数,常规表示法
E——用E表示法表示的浮点数(其中,E代表10的次幂) N——带有分隔符的浮点数(在美国为逗号)
C——货币,带有货币符号和分隔符(在美国为逗号) D——十进制数,仅用于整型 X——十六进制数,仅用于整型
字母可以后跟一个数字,根据字母的不同,该数字可以表示总位数、有效位数或小数点后面的位数。
下面是字母格式的一些示例: double pi = Math.PI; double p0 = pi * 10000; int i = 123;
Console.WriteLine(\浮点格式,无分隔符(逗号)\
Console.WriteLine(\, Left {0, -25}\pi); // 3.1415926535897931 Console.WriteLine(\Rt. {0, 25}\p0); // 3.1415926535897931 Console.WriteLine(\E {0, 25:E}\pi); // 3.1416E+000
Console.WriteLine(\使用 E 和 F 格式,小数点后保留 n(此处为 4)位\ Console.WriteLine(\E4 {0, 25:E4}\pi); // 3.1416E+000 Console.WriteLine(\F4 {0, 25:F4}\pi); // 3.1416
Console.WriteLine(\使用 G 格式,保留 4 位有效数字——如果需要请使用 E 格式\ Console.WriteLine(\G4 {0, 25:G4}\pi); // 3.142 Console.WriteLine(\G4 {0, 25:G4}\p0); // 3.142E4 Console.WriteLine(\和 C 格式带有逗号(分隔符),\+ \默认小数点后保留两位,四舍五入。\
Console.WriteLine(\N {0, 25:N}\p0); // 31,415.93
Console.WriteLine(\N4 {0, 25:N4}\p0); // 31,415.9265 Console.WriteLine(\C {0,25:C}\pi); // $3.14 Console.WriteLine(\和 X 格式仅用于整型,\+ \非整型将产生格式异常——X 指十六进制\ Console.WriteLine(\D {0, 25:D}\i ); // 123
Console.WriteLine(\D7 {0, 25:D7}\i ); // 0000123 Console.WriteLine(\X {0, 25:X}\i ); // 7B
Console.WriteLine(\X8 {0, 25:X8}\i ); // 0000007B 图片格式 与字母格式不同,Formatstring可以包含“图片格式”。下面是从代码中摘录的几个实例。(这类似于Basic中的“Print Using”语句。)图片格式功能甚至包括以不同方式设置负数、正数和零的格式的能力。还有几个图片格式功能,下面的示例中未包括在内。有关详细信息,请参阅“.NET框架开发人员指南”或文档中的主题图片格式数字串(英文)。
在下例中您将注意到,好心的博士既使用了“#”字符,又使用了“0”字符。如果相应的数字是前导零或尾随零,“#”字符就会替换为空值。无论相应数字的值如何,“0”字符都会被替换为零字符——因此,数字将会被零填补。句号(如果有的话)表示小数分隔符的位置。
SideBar控件实现图标的相互拖动
下面的代码可以将下图,左侧的图标和右侧的图标相互拖动入对方
private void listView1_DragEnter(object sender, System.Windows.Forms.DragEventArgs e) { if(m_InternalDragDrop) return; if(e.Data.GetData(typeof(ButtonItem))==null) e.Effect=DragDropEffects.None; else e.Effect=DragDropEffects.Move; }
private void listView1_DragDrop(object sender, System.Windows.Forms.DragEventArgs e) { if(m_InternalDragDrop) return; ButtonItem item=e.Data.GetData(typeof(ButtonItem)) as ButtonItem; if(item==null) return; listView1.Items.Add(item.Text,item.ImageIndex);
item.Parent.SubItems.Remove(item); }
private void listView1_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e) { if(e.Button==MouseButtons.Left && (Math.Abs(e.X)>=4 || Math.Abs(e.Y)>=4)) { if(listView1.SelectedItems.Count==1) { ButtonItem item=new ButtonItem(\,listView1.SelectedItems[0].Text); item.ImageIndex=listView1.SelectedItems[0].ImageIndex; item.ButtonStyle=eButtonStyle.ImageAndText; item.ImagePosition=eImagePosition.Top;
m_InternalDragDrop=true; if(listView1.DoDragDrop(item,DragDropEffects.All)==DragDropEffects.Move) { listView1.Items.Remove(listView1.SelectedItems[0]); } m_InternalDragDrop=false; } } }
控件SideBar的使用
(1)使用效果,见上图 (2)使用起来不难
(3)改变图标大小,及删除图标的程序
private void bLargeIcons_Click(object sender, System.EventArgs e) { if(sideBar1.ExpandedPanel != null) sideBar1.ExpandedPanel.ItemImageSize=eBarImageSize.Medium; }