很久没来写博客了。最近工作的事忙得不知道怎么说了。可是,在今天,突然就觉得人生不是这样过的。曾经的光荣与梦想,不能让它们沉睡在过去。
闲话少说,放上代码。在这里首先感谢pybus的作者Manson,因为Go!Bus的核心算法就是基于pybus的,Go!Bus是重新编写了界面和菜单,在易用性方面作出改进。
我觉得最大的改进是代码变得好看了,呵呵,非常适合初学者当作学习的例程。

[file]attachment/200807/1215526353_1.rar[/file]
算法如下:
基姆拉尔森计算公式
W= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400) mod 7
在公式中d表示日期中的日数,m表示月份数,y表示年数。
注意:在公式中有个与其他公式不同的地方:
把一月和二月看成是上一年的十三月和十四月,例:如果是2004-1-10则换算成:2003-13-10来代入公式计算。
代码如下:
[code]//y-年,m-月,d-日期
string CaculateWeekDay(int y,int m, int d)
{
if(m==1) m=13;
if(m==2) m=14;
int week=(d+2*m+3*(m+1)/5+y+y/4-y/100+y/400)%7;
string weekstr="";
switch(week)
{
case 1: weekstr="星期一"; break;
case 2: weekstr="星期二"; break;
case 3: weekstr="星期三"; break;
case 4: weekstr="星期四"; break;
case 5: weekstr="星期五"; break;
case 6: weekstr="星期六"; break;
case 7: weekstr="星期日"; break;
}
return weekstr;
}[/code]
经过昨晚奋斗,可恶的数据库课程设计被迫完成[emot]sleepy[/emot]写程序的时候,网上找到一个有趣的小函数,用于判断字符串是否全为数字,个人觉得思路很不错,分享一下[emot]grin[/emot]
[code]private bool IsNumberic(string oText)
{
try
{
int var1 = Convert.ToInt32(oText);
return true;
}
catch
{
return false;
}
}[/code]
开发环境:vs2005
编程语言:C#
适用系统:smartphone 2003se、Windows Mobile 5
测试机型:577w、566
程序使用说明:
直接解压到任意目录即可。注意两个配置文件和程序放同一目录即可。data.ini为课程记录文件,第一到第七行分别是星期一到星期天,使用\r\n标记换行。settings.ini为运行配置文件,暂时只做了设置字体和开学日期功能。两个文件都可以直接用记事本打开编辑,不过要注意data.ini要使用unicode编码,因为内容有中文。
[file]attachment/200708/1186279584_0.rar[/file]
更新记录:
6.5
第一次发布。
========
6.7
加入了设置字体大小的选项,使用配置文件进行记录。修正了第一次版本时配置文件必须放固定目录的问题。
========
6.8
加入了计算周数的功能,设定开学日期在settings.ini的第二行,形式如20070305,即2007年3月5日,注意个位数的月份和日期要补0。
========
6.9
加入了在程序中设置开学日期。
========
6.19
修正之前发布版本的无法设置字体大小的错误。更换好看的图标,改动提醒字句。
========
6.25
新增编辑课程的功能,终于可以脱离电脑使用了。
========
6.30
改进了代码,在设置开学日期的输入框自动切换为数字输入状态。
后记:其实离最后一次修改已经一个多月过去了。在考完试以后,各种各样的事情多得不得了,下学期开始自己也不用再用这个课程表了。后继的改进应该不会怎么多了吧。