30 Days of .NET [Windows Mobile Applications] - Day 01: Minutes to Midnight Countdown(午夜倒数器)...
得到原作者 Chris Craft 的同意,本人可以翻譯他的系列文章 30 Days of .NET [Windows Mobile Applications]并在博客園里發(fā)表。這是一個十分趣味性很高的系列,通過這個系列的學習,可以掌握Windows Mobile開發(fā)很多技巧,包括GPS,Bluetooth,界面編程,多線程等等。
在這個系列的文章,我不會逐句翻譯,而是討論需求的由來,對需求的分析思考,對實現(xiàn)的表述,以及對現(xiàn)有實現(xiàn)的改進想法,希望能成為原文的補充。第一篇文章是實現(xiàn)一個午夜倒數(shù)器。原文見 Day 01: Minutes to Midnight Countdown
需求
這個需求的由來,作者Chris Craft打算寫一個30 Days of .NET [Windows Mobile Applications]開發(fā)的系列文章,然后想到自己是否有決心寫完,每個人都自己的生活:家庭,朋友,事業(yè),興趣已經(jīng)夢想。每個人一天都有而且只有24小時,我們可以知道的是到底還有多少時間剩下在這一天。
其實很多時候,我們做事情光有想法,不付諸行動,或者行動中半途而廢。作者在開始的時候也懷疑自己是否有決心把事情做完,最終的結果顯示Chris Craft做到了,我希望也向Chris Craft學習,把這個系列的文章學一遍。如果你還是在Windows Mobile開發(fā)的門外徘徊,可以跟著這個系列每天學一點,想一點,不多也不少,打開Windows Mobile開發(fā)精彩之門,感受個中樂趣。
準備工作
學習這個系列,需要安裝Visual Studio 2008和Windows Mobile 6 SDK。 Visual Studio 2008 Express 下載見 Visual Studio Express, Windows Mobile 6 SDK 下載于 Windows Mobile 6 Professional and Standard Software Development Kits Refresh。
實現(xiàn)
這些程序很簡單,關鍵運用了Timer,DateTime和進程條(Progress Bar)。
Timer是通過控件使用的,所以回調(diào)時間在屬性里進行配置,如下:
圖1
圖2
Interval設置為100表示每100毫秒回調(diào)一次timer_Tick(object sender, EventArgs e)。
?
private?void?timer_Tick(object?sender,?EventArgs?e){
?TimeSpan?timeSpan?=?DateTime.Now.Date.AddDays(1)?-?DateTime.Now;
?labelHours.Text?=?string.Format("{0}?of?24?hours?left",?timeSpan.Hours);
?labelMinutes.Text?=?string.Format("{0}?of?60?minutes?left",?timeSpan.Minutes);
?labelSeconds.Text?=?string.Format("{0}?of?60?seconds?left",?timeSpan.Seconds);
?labelTotalMinutes.Text?=?string.Format("{0}?of?1440?total?minutes?left",?timeSpan.TotalMinutes.ToString("#.0"));
?labelTotalSeconds.Text?=?string.Format("{0}?of?86400?total?seconds?left",?timeSpan.TotalSeconds);
?progressBarTotal.Value?=?86400?-?(int)?timeSpan.TotalSeconds;
?progressBarHours.Value?=?24?-?timeSpan.Hours;
?progressBarMinutes.Value?=?60?-?timeSpan.Minutes;
?progressBarSeconds.Value?=?60?-?timeSpan.Seconds;
?progressBarTotalMinutes.Value?=?1440?-?(int)?timeSpan.TotalMinutes;
?progressBarTotalSeconds.Value?=?86400?-?(int)?timeSpan.TotalSeconds;
}
這個回調(diào)函數(shù)的算法也很簡單,DateTime.Now.Date.AddDays(1)取出午夜的時間DateTime對象,然后和當前時間相減得到TimeSpan的對象timeSpan,從timeSpan的取出當前和午夜的時間差呈現(xiàn)到Label以及ProgressBar上。在total minutes left上,作者做了處理,因為有時候會顯示小數(shù)錯誤"X.666666666 of 1440 total minutes left".通過字符串的格式化以后timeSpan.TotalMinutes.ToString("#.0"),顯示正常。
安裝文件: minutes2Midnight.cab
源代碼: minuates2Midnight.zip
?
.NET Compact Framework, WinCE, Windows Mobile開發(fā)系列
Jake's Blog in 博客園 -- 精簡開發(fā) 無線生活
轉載于:https://www.cnblogs.com/procoder/archive/2009/05/20/1471334.html
總結
以上是生活随笔為你收集整理的30 Days of .NET [Windows Mobile Applications] - Day 01: Minutes to Midnight Countdown(午夜倒数器)...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ITCAST视频-Spring学习笔记(
- 下一篇: 学习笔记92—python 画横竖分界线