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;
 上面是常用的日期有關的技術總結。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章