1. 求用vb做万年历 要求输入一个日期 得到星期节日星座节气
分数太少了,呵呵,呵呵
另外的农历,是更好地做
用的printf打印功能目录,切换来完成调用子函数很多次了,再加上大循环
日历显示,这是相对简单的,是计算的一年的第一天是星期可以
原则:第1年1月1日(星期一),计算这天的第一天,年1月1日,1的AD,除以7的中间的,其余的是周。一年365天,364正好是7的倍数,那么一年更比一天,闰年加一天。还有一个更简单,仅有400年是一个轮回,400 +97 = 497多
您输入的一年,除以400,计算,然后在今年剩下的天数计算量会小很多
所以在今年的第一天是星期计算
最好做的一个子功能来实现这一功能,返回值是今年的几个星期的第一天,后者可用于
下一个打印子功能是一个不错的选择,
设置一个全局数组包含该月的天数来确定一个,如果在2月的天数 BR />这里有一个技巧,就是设定一个变量来保存每月的最后一天,一周,因为它是连续的,所以在下个月的第一天是星期几被很好地定义,是打印几个空格发生这个变量的值,哦
日期星期有几个还不错的事,知道在今年的第一天,然后是一周的第一天的日期,今年的差一些美好的一天,使用for循环,可以计算出
农历这做的不好,你可以看看网络,一种子功能,您可以参考 a>
后面两个函数,读取和写入文件,很简单,套用固定格式的文件可以变化不大,
2. 用VB语言编写 根据用户输入一个出生日期,算出其所属的星座和生肖,不要拖放控件,直接编写
是求年的生肖还是月\日\时的?
3. 用VB语言在EXCEL中编写通过出生年月日判断星座 急求!
其实最简单的思路应该是将生日(比如在A1)中的年份信息去掉(全部统一为1900年,用函数date(0,month(A1),day(A1)),再与星座分割日(比如水瓶座1月20日为20,双鱼座2月19日为49等)做大小比对。以前网上很多一句语句查星座的都是这个思路。
但这个方法有个隐蔽的bug:闰年。闰年里面的星座分割日在3月份之后要加1。隐蔽的bug是大忌!如果别人调用了你的函数,却总是有无规律的错误发生,有时绞尽脑汁找不出问题的所在,往往就是因为你函数中这种隐蔽的bug了。
为了绕过闰年的bug,我编写了下面的函数,直接仿造人肉查询月、日的过程。
当然,里面有可以优化的地方,比如月份的数组由于维数和内容一样,可以直接优化掉;比如最后的if语句结构可以用一个iif语句代替。但这些都是细枝末节,为了更好地体现编程思路,就不做这些“匠心”的优化了。
Function HOROSCOPE(x As Date) As String
Dim XZ(12) As String
Dim Yue(12) As Long
Dim Ri(12) As Long
XZ(0) = "摩羯座"
XZ(1) = "水瓶座"
XZ(2) = "双鱼座"
XZ(3) = "白羊座"
XZ(4) = "金牛座"
XZ(5) = "双子座"
XZ(6) = "巨蟹座"
XZ(7) = "狮子座"
XZ(8) = "处女座"
XZ(9) = "天秤座"
XZ(10) = "天蝎座"
XZ(11) = "射手座"
XZ(12) = "摩羯座"
Yue(1) = 1
Yue(2) = 2
Yue(3) = 3
Yue(4) = 4
Yue(5) = 5
Yue(6) = 6
Yue(7) = 7
Yue(8) = 8
Yue(9) = 9
Yue(10) = 10
Yue(11) = 11
Yue(12) = 12
Ri(1) = 20
Ri(2) = 19
Ri(3) = 21
Ri(4) = 20
Ri(5) = 21
Ri(6) = 22
Ri(7) = 23
Ri(8) = 23
Ri(9) = 23
Ri(10) = 24
Ri(11) = 23
Ri(12) = 22
m = Month(x)
d = Day(x)
If d < Ri(Yue(m)) Then
HOROSCOPE = XZ(Yue(m) - 1)
Else
HOROSCOPE = XZ(Yue(m))
End If
End Function
4. 用VB语言编写输入出生日期算出生肖与星座的程序
'新建窗体form1
'添加控件 DTPicker1,Command1
Private Sub Command1_Click()
Dim aa As Integer
Dim bb As Integer
Dim cc As Integer
Dim dd_xingzuo As Integer
Dim dd_shengxiao As Integer
Dim leirong As String
bb = DTPicker1.Month
aa = DTPicker1.Day
cc = DTPicker1.Year
dd_xingzuo = (bb * 100 + aa)
dd_shengxiao = cc Mod 12
If dd_xingzuo > 112 And dd_xingzuo < 221 Then
leirong = "星座:水瓶座"
End If
If dd_xingzuo >= 221 And dd_xingzuo <= 321 Then
leirong = "星座:双鱼座"
End If
If dd_xingzuo >= 322 And dd_xingzuo <= 420 Then
leirong = "星座:白羊座"
End If
If dd_xingzuo >= 421 And dd_xingzuo <= 521 Then
leirong = "星座:金牛座"
End If
If dd_xingzuo >= 522 And dd_xingzuo <= 621 Then
leirong = "星座:双子座"
End If
If dd_xingzuo >= 622 And dd_xingzuo <= 721 Then
leirong = "星座:巨蟹座"
End If
If dd_xingzuo >= 722 And dd_xingzuo <= 821 Then
leirong = "星座:狮子坐"
End If
If dd_xingzuo >= 822 And dd_xingzuo <= 921 Then
leirong = "星座:处女座"
End If
If dd_xingzuo >= 922 And dd_xingzuo <= 1021 Then
leirong = "星座:天秤座"
End If
If dd_xingzuo >= 1022 And dd_xingzuo <= 1121 Then
leirong = "星座:天蝎座"
End If
If dd_xingzuo >= 1122 And dd_xingzuo <= 1221 Then
leirong = "星座:射手座"
End If
If dd_xingzuo >= 1222 Or dd_xingzuo <= 111 Then
leirong = "星座:摩羯座"
End If
Select Case dd_shengxiao
Case 0
leirong = leirong & vbCrLf & "身肖:猴"
Case 1
leirong = leirong & vbCrLf & "身肖:鸡"
Case 2
leirong = leirong & vbCrLf & "身肖:狗"
Case 3
leirong = leirong & vbCrLf & "身肖:猪"
Case 4
leirong = leirong & vbCrLf & "身肖:鼠"
Case 5
leirong = leirong & vbCrLf & "身肖:牛"
Case 6
leirong = leirong & vbCrLf & "身肖:虎"
Case 7
leirong = leirong & vbCrLf & "身肖:兔"
Case 8
leirong = leirong & vbCrLf & "身肖:龙"
Case 9
leirong = leirong & vbCrLf & "身肖:蛇"
Case 10
leirong = leirong & vbCrLf & "身肖:马"
Case 11
leirong = leirong & vbCrLf & "身肖:羊"
End Select
MsgBox leirong, vbInformation, "计算结果"
End Sub