[習題]輸入自己的生日(年/月/日)#2 -- 日曆(Calendar)控制項的時光跳躍,一次跳回五年、十年前?--TodaysDate屬性、VisibleDate屬性

摘要:[習題]輸入自己的生日(年/月/日)#2 -- 日曆(Calendar)控制項的時光跳躍,一次跳回五年、十年前?--TodaysDate屬性、VisibleDate屬性





 

 

上一篇文章:[習題]輸入自己的生日(年/月/日) -- 日曆(Calendar)控制項的時光跳躍,一次跳回五年、十年前?--TodaysDate屬性、VisibleDate屬性

http://www.dotblogs.com.tw/mis2000lab/archive/2011/05/30/calendar_todaysdate.aspx

 

這個習題可以當成「上集」  Ch.3 日曆控制項的補充範例。

補充這樣的功能:

      

 

上圖的「出生」,如果要包含一百年的選項

我們沒法自己動手慢慢添加子選項,必須靠寫程式完成。

 

如何控制年份呢?

    請看 System.DateTime裡面就有很多方法可用。

    例如 .AddYear()方法,您可以用 -1來減去一年,請看 http://msdn.microsoft.com/zh-tw/library/system.datetime.addyears.aspx

 

        for (int i = 0; i < 101; i++)
        {
            //== 方法一 ==:
            //int myYear = System.DateTime.Now.Year - i;
            //DropDownList1.Items.Add(myYear.ToString());
 
            //== 方法二 ==:
            DropDownList1.Items.Add(System.DateTime.Today.AddYears(-i).ToString("yyyy"));
        }

        修正建議:把 System.DateTime移到 for 迴圈外面

                         避免每一次跑迴圈都要調用 Now() 或 .AddYear()方法,以節省資源。

 

 

 

另外一個重點,就是「制訂日曆控制項呈現的那一年、那一月份」

使用日曆控制項的「VisibleDate」屬性會比「TodaysDate」屬性更好。

MSDN裡面有提到:

      如果日曆控制項的 VisibleDate屬性未設定,所指定的日期 TodaysDate屬性會決定哪個月份會顯示在Calendar控制項。

 

        //== 方法一 ==:
        //Calendar1.TodaysDate = new DateTime(Convert.ToInt32(DropDownList1.SelectedValue), Convert.ToInt32(DropDownList2.SelectedValue), 1);
        //== DateTime裡面的日期(年/月/日),只能接受「整數」。
 
        //== 方法二 ==:
        //**** 建議改用 .VisibleDate屬性 更好。
        //**** 只會出現「當月月份」!
        Calendar1.VisibleDate = new DateTime(Convert.ToInt32(DropDownList1.SelectedValue), Convert.ToInt32(DropDownList2.SelectedValue), 1);
        //== DateTime裡面的日期(年/月/日),只能接受「整數」。
 

使用 .VisibleDate屬性時,當月份的日期不會「預設」被選定,畫面也好看一點。

 

 

 

這是上課的補充範例,

很多「初學者」以為自己不會寫程式

後來我發現他們是不會用字串函數、不會用日期與時間的相關函數

 

未必是「基礎的 if / for / while 語法」不會用,畢竟以前在學校多少都有學過一點點

 

請接著觀看下一篇文章,本範例因為 PostBack而發生的錯誤

http://www.dotblogs.com.tw/mis2000lab/archive/2014/08/06/calendar_postback_20140806.aspx

 

 

 
.......................以下是廣告........................................................................................
 
 
我的書、我的課程,絕對沒有太多招數
 
都是用最基本的技巧
組合成各種變化。
 
如同詠春拳,三個套路,
排列組合、變化萬千
 
 
 
 
 
 
與其到處  Copy範例、到處抄襲程式碼(找到了也改不動)
 
為什麼不一次學好、學清楚?
 
然後讓自己有生產力呢?
(你學了一百招,但上了戰場,一招都使不出來?)
(客戶的要求,沒有一個你能自己做到?還是上網逐一發問、抄抄改改?)
 
 
為什麼人家可以千變萬化?
 
我只能到處拼拼湊湊?卻還天天加班、做不完?最後還是迷迷糊糊?
 
 
 
 
   如何一以貫之
         如何啟動「輕輕鬆鬆的自我學習之道」?
 
 
讓我告訴你,
一個沒有大型補習班招牌、沒有關鍵字廣告的書籍與課程
 
 
在時局這麼亂、經濟與工作越來越蕭條的  Bumbler 無能年代
 
為何所有補習班的 ASP.NET課程都開不成、招不到學生
 
我的課程,班班額滿,欲罷不能.............縱貫這三四年 全台灣 的 ASP.NET入門教學
 
 
 
 

 
 

我將思想傳授他人, 他人之所得,亦無損於我之所有;

猶如一人以我的燭火點燭,光亮與他同在,我卻不因此身處黑暗。----Thomas Jefferson

線上課程,遠距教學 (Web Form 49hr)  https://dotblogs.com.tw/mis2000lab/2016/02/01/aspnet_online_learning_distance_education_VS2015

線上課程,遠距教學 (ASP.NET MVC 75hr)  https://dotblogs.com.tw/mis2000lab/2018/08/14/ASPnet_MVC_Online_Learning_MIS2000Lab

ASP.NET MVC線上課程 第一天 免費看 (5.5小時) 

寫信給我,不要私訊 --  mis2000lab (at) yahoo.com.台灣  或  school (at) mis2000lab.net


ASP.NET遠距教學、線上課程(Web Form + MVC)。 第一天課程, "完整" 試聽。 

................   facebook社團   https://www.facebook.com/mis2000lab   ......................

................  YouTube (ASP.NET) 線上教學影片  https://www.youtube.com/channel/UC6IPPf6tvsNG8zX3u1LddvA/

 

Blog文章 "附的範例" 無法下載,請看 這裡 ...... https://dotblogs.com.tw/mis2000lab/2016/03/14/2008_2015_mis2000lab_sample_download

請看我們的「售後服務」範圍(嚴格認定)

......................................................................................................................................................

...................................................................................................................................................... 

[遠距教學、教學影片] ASP.NET (Web Form) 課程 上線了!MIS2000Lab.主講

事先錄製好的影片,並非上課時側錄!   觀看影片時,有如我「一對一」跟您面對面講課

 

ASP.NET MVC 5 線上教學

累積時數約 75小時...... 第一天(5.5小時)完整內容,"免費"讓您評估