首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C# ,关于字符串位操作的有关问题

2012-03-18 
C# ,关于字符串位操作的问题string data 121030string time 192555如何分别存入2byte的空间?格式

C# ,关于字符串位操作的问题
string data = "121030"
string time = "192555"

如何分别存入2byte的空间?

格式如下:

数据项数据类型 长度(bit) 数据项说明
Yearbit15~bit97 年0~99(2000~2099)
Monthbit8~bit5 4 月1~12
Daybit4~bit0 5 日1~31


数据项数据类型 长度(bit) 数据项说明
Hourbit15~bit105 时0~23
Minutebit9~bit5 6 分0~59
Secondbit4~bit0 5 2秒 0~29

这个具体怎么做啊?


[解决办法]
转换为十六进制
[解决办法]

C# code
DateTime old = DateTime.Now;int date = 0;date = (date | old.Year - 2000) << 4;date = (date | old.Month) << 5;date = (date | old.Day);int time = 0;time = (time | old.Hour) << 6;time = (time | old.Minute) << 5;time = (time | old.Second);Int32 datetime = (date << 16) | time;
[解决办法]
给你写出一个类,另一个你自己仿照着写就好了
C# code
        public class myDate        {            private ushort _value;  //  这个用于保存值            public int Year    //  这个属性设置或读出年度码            {                set                {                    if (value <= 2099 || value >= 2000)                    {                        int temp = value % 100;                        _value = (ushort)((temp << 9) | (_value & 0x1ff));                    }                }                get { return (_value & 0xfe00) >> 9; }            }            public int Month    //  这个是月份            {                set                {                    if (value <= 12 || value >= 1)                        _value = (ushort)((value << 5) | (_value & 0xfe1f));                }                get { return (_value & 0x1e0) >> 5; }            }            public int Day    //  这个是日期            {                set                {                    if (value <= 31 || value >= 1)                        _value = (ushort)(value | (_value & 0xffe0));                }                get { return _value & 0x1f; }            }            public string Value    //  这个用于将指定格式的字符串装入本类对象,没做正确性检验的            {                set                {                    if (value.Length == 6)                    {                        Year = Int32.Parse(value.Substring(0, 2));                        Month = Int32.Parse(value.Substring(2, 2));                        Day = Int32.Parse(value.Substring(4, 2));                    }                }            }        }
[解决办法]
应用myDate类的例子
C# code
        static void Main(string[] args)        {            myDate md=new myDate();            md.Value = "121030";            Console.WriteLine(md.Year);            Console.WriteLine(md.Month);            Console.WriteLine(md.Day);        } 

热点排行