string::npos的值為 -1,但是因為它的type是size_t也就是unsigned long,所以其實string::npos代表的值為size_t裡面的最大值。
參考資料 :
http://www.cplusplus.com/reference/string/string/npos.html
2008年9月1日 星期一
[+/-] |
[C++] string::npos |
標籤:
C++
[+/-] |
[PyGtk] 把程式縮小到系統工具列(system tray) |
在ubuntu上面用的hinedo這個廣播程式就是用這樣的方式存在於系統工具列裡面,感覺起來方便簡潔,不會佔用到awn的空間。
而利用PyGtk配合上 GnomePythonExtras 裡面的egg.trayicon就能達到這樣的效果。
另外GnomePythonDesktop 也提供了gnome桌面library的interface,對於寫gnome桌面程式有很大的幫助。 (ex:gnome applet)
下面是egg.trayicon的簡單例子(gnome-python-extras-2.9.4/examples/egg/trayicon.py):
#! /usr/bin/python
import pygtk
pygtk.require("2.0")
import gtk
import egg.trayicon
t = egg.trayicon.TrayIcon("MyFirstTrayIcon")
t.add(gtk.Label("Hello"))
t.show_all()
gtk.main()
參考資料 :
http://www.pygtk.org/news.html
[+/-] |
[MFC] CTime的使用 |
如果要找出一個月的第3個幾個星期3要怎麼做呢?
很簡單的方法就是用CTime從這個月的1號開始,對每一天判斷使否為星期三,再利用CTimeSpan設定一天的長度往後加。如此在數到第三個星期三時,就知道是哪一天了。這是一個雖然暴力但是很簡單的做法。
程式碼:
//下面這段程式碼會找出這個月的第三個禮拜三
CTime Find3rdWed()
{
//取得今天的時間
CTime now = CTime::GetCurrentTime();
//從這個月的1號開始 (year, month, day, hour, min, sec)
CTime wholeMonth(now.GetYear(), now.GetMonth(), 1, 0, 0, 0);
//設定一天的長度
CTimeSpan aDay(1, 0, 0, 0);
//禮拜三count
int wedCount = 0;
//尋找第三個禮拜三, 只檢查28天, 因為第三個禮拜三一定在28日以前, 並且配合最短日期的月份
for(int i = 1;i <= 28;i++)
{
//sunday = 1, monday = 2, ...
if(wholeMonth.GetDayOfWeek() == (1 + 3))
wedCount++;
if(wedCount == 3)
{
//find !!
return wholeMonth;
}
//檢查下一天
wholeMonth = wholeMonth + aDay;
}
}
參考資料 :
http://blog.yam.com/swwuyam/article/12603979
訂閱:
文章 (Atom)