标题:再来一个生肖反向运算
只看楼主
中国龙王
Rank: 5Rank: 5
等 级:贵宾
威 望:16
帖 子:484
专家分:283
注 册:2006-5-17
结帖率:97.22%
已结贴  问题点数:20 回复次数:14 
再来一个生肖反向运算
前面我有提到过用1,2,3,4,5,6,7,8,9,10,11,12数字求生肖,现在反过来,我们已知2010年是虎年,2009年是牛年,那么怎么来一段代码能自动算出2011年是兔年呢
搜索更多相关主题的帖子: 生肖 运算 
2010-07-10 18:22
中国龙王
Rank: 5Rank: 5
等 级:贵宾
威 望:16
帖 子:484
专家分:283
注 册:2006-5-17
得分:0 
补充一下子要求,要以下结果:
当 y=2009 &2009年是牛年
则 c='牛虎兔龙蛇马羊猴鸡狗猪鼠'
当 y=2010 &2010年是虎年
则 c='虎兔龙蛇马羊猴鸡狗猪鼠牛'
当 y=2011 &2011年是兔年
则 c='兔龙蛇马羊猴鸡狗猪鼠牛虎'
请高手搞一搞


不要为了打发无聊而做无聊的事!不要在虚幻的世界里做虚幻的事!
2010-07-10 18:30
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:396
帖 子:11713
专家分:43267
注 册:2006-5-13
得分:5 
龙王出考题了!试着答题:
nYEAR=2009

cTXT="鼠牛虎兔龙蛇马羊猴鸡狗猪"
nMOD=mod(nYEAR,12)-3
?right(cTXT,(13-nMOD)*2)+left(cTXT,nMOD*2-2)

活到老,学到老! http://www. E-mail:hu-jj@
2010-07-10 20:59
啸凡
Rank: 8Rank: 8
等 级:贵宾
威 望:45
帖 子:1356
专家分:885
注 册:2006-2-22
得分:5 
别说2009年,任何年份都可以求出来(不过以公历年份来求是不准确的,因为属相是按农历年份算的)
Do while .t.
Accpt nYEAR '请输入所求年份,输入0则退出'
***$$ 判断输入数据有效性部分略
  IF nYEAR=0
    Exit
  ELSE
     cTXT="鼠牛虎兔龙蛇马羊猴鸡狗猪"
     nMOD=mod(nYEAR,12)-3
     WAITE Windows STR(nYEAR)-'年是'-right(cTXT,(13-nMOD)*2)+left(cTXT,nMOD*2-2)-'年'
  ENDIF
  Clean
Endo
RETURN

两人行已有我师……
2010-07-10 21:31
啸凡
Rank: 8Rank: 8
等 级:贵宾
威 望:45
帖 子:1356
专家分:885
注 册:2006-2-22
得分:0 
既然您补充了一下要求,我也补充一下答案:
采用一个12娄的循环,从当前属相年开始在cTXT里取字符,当取字符的位置大于cTXT的长度时就从第一位取,就可以达到你补充的要求了。这里要用到AT函数,您试试,相信您一定行。

两人行已有我师……
2010-07-10 21:36
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
得分:5 
nYear=2009
?GetGanzhi(nYear)
return

Function GetGanzhi
LParameters nYear
If type('nYear')#'N' or int(nYear)#nYear
  nYear=Year(Date())
EndIf
c1='牛虎兔龙蛇马羊猴鸡狗猪鼠'
n1=2009
return substrc(c1+c1,mod(nYear-n1,12)+1,12)

感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2010-07-10 21:43
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
得分:0 
nYear=2009
?GetGanzhi(nYear)
return

Function GetGanzhi
LParameters nYear
If type('nYear')#'N' or int(nYear)#nYear
  nYear=Year(Date())
EndIf
Return Substrc('牛虎兔龙蛇马羊猴鸡狗猪鼠牛虎兔龙蛇马羊猴鸡狗猪鼠',Mod(nYear-2009,12)+1,12)

感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2010-07-10 21:44
茵梦湖
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:31
帖 子:545
专家分:2180
注 册:2009-4-25
得分:5 

任意年份的生肖序 代码如下:

? left(subs('猴鸡狗猪鼠牛虎兔龙蛇马羊',(你的年份%12+1)*2-1)+'猴鸡狗猪鼠牛虎兔龙蛇马羊',24)


例:

? left(subs('猴鸡狗猪鼠牛虎兔龙蛇马羊',(2009%12+1)*2-1)+'猴鸡狗猪鼠牛虎兔龙蛇马羊',24)  && 2009年
? left(subs('猴鸡狗猪鼠牛虎兔龙蛇马羊',(2011%12+1)*2-1)+'猴鸡狗猪鼠牛虎兔龙蛇马羊',24)  && 2011年
? left(subs('猴鸡狗猪鼠牛虎兔龙蛇马羊',(1949%12+1)*2-1)+'猴鸡狗猪鼠牛虎兔龙蛇马羊',24)  && 1949年

2010-07-10 21:47
啸凡
Rank: 8Rank: 8
等 级:贵宾
威 望:45
帖 子:1356
专家分:885
注 册:2006-2-22
得分:0 
Substrc('牛虎兔龙蛇马羊猴鸡狗猪鼠牛虎兔龙蛇马羊猴鸡狗猪鼠',Mod(nYear-2009,12)+1,12) !!!!
免去了循环结构!大老虎,真高

两人行已有我师……
2010-07-10 21:50
茵梦湖
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:31
帖 子:545
专家分:2180
注 册:2009-4-25
得分:0 
也可以

? subs('猴鸡狗猪鼠牛虎兔龙蛇马羊猴鸡狗猪鼠牛虎兔龙蛇马羊',(你的年份%12+1)*2-1),24)


2010-07-10 21:52



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-312577-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.492080 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved