none
有關MonthCalendar更新及儲存資料庫一問! RRS feed

  • 問題

  • 各位前輩您好:
    1.小弟最近試著在win from里拉出12個月曆, 並製定selectstart(2009,1,1)....(2009,12,1)..但我在想..若到2010年時就還停留在2009年..如何將年自動更新..
    2.最後想將每個月選的日期...只要存成"Y"沒選到的都存成"N",EX:欄位內容為 YYYYNNNNNNNNNN.......................(365天)
    因不太懂月曆的邏輯..請前輩們好心教導

    2009年8月20日 上午 02:36

解答

  •     Private Sub MonthCalendar1_DateChanged(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DateRangeEventArgs) Handles MonthCalendar1.DateChanged
            ' Show the start and end dates in the text box.
            Me.TextBox1.Text = "Date Changed: Start = " + _
                    e.Start.ToShortDateString() + " : End = " + e.End.ToShortDateString()
            Me.TextBox2.Text = DatePart(DateInterval.DayOfYear, CDate(e.Start.ToShortDateString()))
        End Sub
    
            Dim datDay As Date = DateAdd(DateInterval.DayOfYear, 1, New DateTime(Now.Year - 1, 12, 31))
            Me.TextBox3.Text = CStr(datDay)

    DatePart 函式 (Visual Basic)
    http://msdn.microsoft.com/zh-tw/library/20ee97hz(VS.80).aspx

    DateAdd 函式 (Visual Basic)
    http://msdn.microsoft.com/zh-tw/library/hcxe65wz(VS.80).aspx

    宣告Boolean陣列大小366為False,在DateChanged事件把選到的,用DatePart運算後填到對應的陣列,把Boolean陣列,用迴圈和字串函式Left換算後,存入資料庫;從資料庫取出,反向就用DateAdd算出日期,參考以上囉...
    • 已標示為解答 Lolota Lee 2009年8月24日 上午 07:14
    2009年8月20日 上午 06:27

所有回覆

  • 目前小弟用

                    Me.MonthCalendar9.SelectionStart = New DateTime(Today.Year, 9, 1)
                    Me.MonthCalendar9.SelectionEnd = New DateTime(Today.Year, 9, 1)

                    Me.MonthCalendar10.SelectionStart = New DateTime(Today.Year,, 10, 1)
                    Me.MonthCalendar10.SelectionEnd = New DateTime(Today.Year, 10, 1)

                    Me.MonthCalendar11.SelectionStart = New DateTime(Today.Year,, 11, 1)
                    Me.MonthCalendar11.SelectionEnd = New DateTime(Today.Year,, 11, 1)

    不知可不可以

    2009年8月20日 上午 02:40
  •  
           Me.MonthCalendar1.SelectionStart = New DateTime(Now.Year, 1, 1)

    上面也可以;如果用您的方法,存成YN365個字元,需要轉換日期為第幾天,從資料庫取出來,也要轉換第幾天為日期,比較不直覺,直接把選取日期存到資料庫裡,是比較便利的方式...
    2009年8月20日 上午 02:58
  • 可以,你把系統時間調整一下成 2010 年就知道了
            ' 寫法一
            Me.MonthCalendar1.SelectionStart = New DateTime(Today.Year, 9, 1)
            Me.MonthCalendar1.SelectionEnd = New DateTime(Today.Year, 9, 1)
    
            ' 寫法二
            Me.MonthCalendar1.SetDate(CStr(Today.Year) + "/09/01")



    .NET菜鳥自救會 http://www.dotblogs.com.tw/chou/
    2009年8月20日 上午 03:05
    版主
  • 前輩您好:
    [若存成YN365個字元,需要轉換日期為第幾天,從資料庫取出來,也要轉換第幾天為日期],存檔後我想再用年度去查詢~
            依您的指導, 我很想要學這一段, 不知要如何作..感謝前輩不吝教導~努力學習的學員留
    2009年8月20日 上午 04:02
  •     Private Sub MonthCalendar1_DateChanged(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DateRangeEventArgs) Handles MonthCalendar1.DateChanged
            ' Show the start and end dates in the text box.
            Me.TextBox1.Text = "Date Changed: Start = " + _
                    e.Start.ToShortDateString() + " : End = " + e.End.ToShortDateString()
            Me.TextBox2.Text = DatePart(DateInterval.DayOfYear, CDate(e.Start.ToShortDateString()))
        End Sub
    
            Dim datDay As Date = DateAdd(DateInterval.DayOfYear, 1, New DateTime(Now.Year - 1, 12, 31))
            Me.TextBox3.Text = CStr(datDay)

    DatePart 函式 (Visual Basic)
    http://msdn.microsoft.com/zh-tw/library/20ee97hz(VS.80).aspx

    DateAdd 函式 (Visual Basic)
    http://msdn.microsoft.com/zh-tw/library/hcxe65wz(VS.80).aspx

    宣告Boolean陣列大小366為False,在DateChanged事件把選到的,用DatePart運算後填到對應的陣列,把Boolean陣列,用迴圈和字串函式Left換算後,存入資料庫;從資料庫取出,反向就用DateAdd算出日期,參考以上囉...
    • 已標示為解答 Lolota Lee 2009年8月24日 上午 07:14
    2009年8月20日 上午 06:27