 |
snoopy每日一译-求星期几
|
|
| |
| 注意事项:
在现在广泛使用的阳历中,公元1年(AD 1)之前是公元前1年(1 BC),不存在公元0年。和阳历不同,天文历法(astronomical reckoning)有0年。为了区别起见,天文历法不使用AD和BC,而使用正负号代替。天文年+1对应于公元1年(AD 1),而天文年0对应于公元前1年(1 BC),天文年-1对应于公元前2年(2 BC)。为了方便起见,我在本文及程序中都使用天文历法。
预览:
算法是基于这样的事实:+1年1月1日是星期一,+2年1月1日是星期二,依此类推。这是因为365%7=1!有了这个知识,我写了这个程序。我会解释我怎样得到这个结果的,希望对别人有点帮助。
How and Why
在我写这个程序之前,我注意到没有什么类和控件告诉我+1年1月1日是星期几,因此我想没有简单的传统方法去知道一个随机的日期是星期几。我必须另劈捷径,或者,至少改进旧的。
计算星期几传统的方法是基于一个已知星期数的基准日期。因为基准日期可以随机选择,我选择一个特殊的日期以使事情简单化。1月1日似乎是最好的选择,这样的话我不用考虑从基准日期到该年末有多少天。现在,我该选择哪一年呢?我选择0年。假设我们想知道YYYY年MM月DD日是星期几。如果我们知道了YYYY年1月1日是星期几的话,答案就很容易了。计算YYYY年1月1日的公式:
theDayOfJan_1( ...
|
|
| 作者:不祥 ycr40张贴于2004-04-24 08:05:48.0,共阅读1843次,回复0次 |
|
|
 |
白乔原创:Shell基础类CShell
|
|
| |
| 本类封装了一些常用的Shell操作,包括:创建快捷方式,获取特殊目录路径(如:我的电脑)、枚举制定目录(如:桌面)的子项列表等。头文件:
// Shell.h: interface for the CShell class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_SHELL_H__6D15D05C_CD8B_4422_BFAF_D0A70F36E352__INCLUDED_)
#define AFX_SHELL_H__6D15D05C_CD8B_4422_BFAF_D0A70F36E352__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
class CShell //Shell文件基础类
{
public:
BOOL FreeMemory(void * pBuffer);
BOOL CreateLink(LPCITEMIDLIST lpi, CString sPathLink, CString sDescription = "", BOOL bByName = false);
LPITEMIDLIST ...
|
|
| 作者:不祥 bluejoe张贴于2004-04-20 20:52:12.0,共阅读2150次,回复0次 |
|
|
 |
轻轻松松将你的程序加上TrayIcon
|
|
| |
![工程快照[8,024字节]](/upload/2004/04/1047343490812.gif)
|
| |
| 使用CTrayIconDialog开发包可以在最短时间内将你的对话框程序加上通知栏图标及菜单。
CTrayIconDialog包主要包含2个类:CTrayIconDialog和CTrayIcon。前者完成对话框对TrayIcon的支持,后者则专门实现对TrayIcon的封装。使用CTrayIconDialog包的步骤非常简单。
首要条件是你的应用必须是一个基于对话框的应用,或者你需要加上TrayIcon的窗口必须是个对话框。接下来你需要将CTrayIconDialog设置成你的对话框的基类,也就是说,你必须将CDialog替换成CTrayIconDialog。
记住,与你的对话框相关的所有的CDialog都要换成CTrayIconDialog。包括BEGIN_MESSAGE_MAP里面,还有一些函数里对基类CDialog函数的调用,等等。
替换完毕,你的程序运行时就会出现TrayIcon,如图所示:
默认的图标是空的,提示文字告诉你:请使用GetTrayIcon()->Modify来设置你的图标。你可以照办,示例程序里面在CTrayIconDlgDemoDlg::OnInitDialog()里面就增添了以下语句:
//装载图标
m_hMyIcon = AfxGetApp()->LoadIcon(IDI_ICON1);
//设定提示文字
GetTrayIcon( ...
|
|
| 作者:不祥 bluejoe张贴于2004-04-18 16:17:41.0,共阅读2259次,回复1次 |
|
|
 |
修正GridCtrl Demo2.25中New Cell-DateTime Cell设定时间在1970年1月1日之前出错的Bug
|
|
| |
![工程快照[59,506字节]](/upload/2004/04/1047343490822.jpg)
|
| |
| 当把DateTime cell的时间调到1970年1月1日前的时候,就会发生错误.因为其中使用的是CTime.我将CTime 改成COleDateTime,就解决了这个Bug.请参照Demo225有问题请mailto:ycr40@163.net
|
|
| 作者:不祥 ycr40张贴于2004-04-20 08:25:56.0,共阅读1780次,回复0次 |
|
|
 |
模拟键盘输入程序
|
|
| |
| 模拟用户按键,用小数字键盘区模拟多媒体键盘的程序(源码少后奉上)注册系统热键
|
|
| 作者:不祥 Bccv张贴于2004-03-30 10:19:19.0,共阅读2382次,回复1次 |
|
|
 |
白乔原创:网络记事本
|
|
| |
![工程快照[16,338字节]](/upload/2004/03/1016457437655.gif)
|
| |
| 数据库应用,学生时代作品。
数据库应用程序。
|
|
| 作者:不祥 bluejoe张贴于2004-03-18 21:18:44.0,共阅读2120次,回复0次 |
|
|
 |
白乔原创:FakeQQ
|
|
| |
![工程快照[3,549字节]](/upload/2004/02/1046178404211.gif)
|
| |
| FakeQQ是白乔为《电脑爱好者》合订本准备的示例程序。 主要演示如下内容:
VC工程创建步骤;
对话框界面编程;
注册表编程;
TrayIcon编程;
网络编程;
数据库编程;
线程编程
FakeQQ由以下类组成:
CFakeQQApp:应用类
CFakeQQDlg:主窗口界面
CLoginDlg:登陆对话框
CMsgInfo:消息类
CSendMsgDlg:发送消息对话框
CUserInfo:用户信息类
CViewLogDlg:查看聊天记录对话框
CAboutDlg:关于对话框
CChatRecordSet:聊天记录数据库ResultSet类
|
|
| 作者:不祥 bluejoe张贴于2004-03-04 15:12:07.0,共阅读2832次,回复0次 |
|
|