Mobile手机开发中对日期的总结日志

日期及日期控件在开发当中是我们经常要用到。mobile6.5中可用的日期有2个:DateTimePicker 和 MonthCalender 一个可以日期下拉选择,一个是月历控件直接展示。

1 日期的保存,实战应用是对日期的格式化成想要的字符串。如:yyyyMMdd 或 yy-MM-dd等
  //数据库表的末次月经字段LastDay 最好保存成“20100601” 格式,则需要这样处理
  //注意yyyyMMdd  和 20100601 格式是必须对应的,否则写成yyyy-MM-dd 就会出错:“未处理 System.FormatException  Message="FormatException"”
  DateTime dt = Convert.ToDateTime(mumLastDate);
  sql = "update [user] set  LastDay='" + dt.ToString("yyyyMMdd") +
        "',Station='1'" +
  //创建时间保存
   DateTime now = DateTime.Now;
   myUser.CrTime = now.ToString("yyyyMMddHHmmss");
  
2 日期的读取与显示                   
 //Mobile手机短日期:注意有2种格式yy-M-d(默认) 和 yy-MM-dd ,当然可以设置的。我们需要考虑到2种格式,统一格式不能只是取系统日期而不做处理,否则日期比较会出错。
 //通常要用到日期控件DateTimePicker的ValueChanged方法
     private void dateTimeBaby_ValueChanged(object sender, EventArgs e)
        {
            if (this.radioNewMa.Checked == true)
            {
                //短日期:有2种格式yy-M-d(默认) 和 yy-MM-dd      
                DateTime dtBabyBirthday = dateTimeBaby.Value;
                String babyBirthdayString = dtBabyBirthday.ToString("yy-MM-dd");
                this.txtBabyBirthday.Text = babyBirthdayString;
            }
        }
 // 读取并显示末次月经时间。
    IFormatProvider culture = new System.Globalization.CultureInfo("zh-CN", true);
    DateTime crTime = DateTime.ParseExact(myuser.LastDay, "yyyyMMdd", culture);
    this.dateTimeLastDay.Value = crTime;
    this.txtLastDay.Text = crTime.ToString("yy-MM-dd");
   

  // 时间
   String srcTimeStr = measure.MTime;
   IFormatProvider culture = new System.Globalization.CultureInfo("zh-CN", true);
   DateTime dt = DateTime.ParseExact(srcTimeStr, "yyyyMMddHHmmss", culture);
   String destTimeStr = dt.ToString("yyyy-MM-dd HH:mm:ss");
   this.lbTime.Text = String.Format("{0}", destTimeStr);

3 日期的比较,主要使用TimeSpan 的方法Subtract Duration求出2个日期间隔时间。

            IFormatProvider culture = new System.Globalization.CultureInfo("zh-CN", true);

            User.User myuser = new User.User();
            myuser = User.User.findUser();
            DateTime dt1 = System.DateTime.Now;  //当天时间
            DateTime dt2 = new DateTime();       //末次月经时间
       dt2 = DateTime.ParseExact(myuser.LastDay.ToString(), "yyyyMMdd", culture);
                    TimeSpan ts1 = new TimeSpan(dt1.Ticks);
                    TimeSpan ts2 = new TimeSpan(dt2.Ticks);
                    TimeSpan ts = ts1.Subtract(ts2).Duration();
                    int i = ts.Days / 30;
                    int d = ts.Days % 30;
                    if (d == 0)
                    { this.statusBar1.Text = "怀孕" + i.ToString() + "个月了"; }
                    else
                    { this.statusBar1.Text = "怀孕" + i.ToString() + "个月又" + d.ToString() + "天了"; }
                  
                    User.User._Month = i + 1;

                    int w = ts.Days / 7;
                    User.User._Flag_Mum = "1";
                    if(w<40)
                        User.User._Week = w+1;
                    if (w >= 40)
                        User.User._Week = 40;
 上面是常用的日期有关的技术总结。

posted on 2010-07-09 10:40  coder狼  阅读(370)  评论(0编辑  收藏  举报

导航