FLEX 24节气算法

  使用说明: 主方法为RiliLunarClass4jyecyea.getSoralTerm();
  如: Alert.show(RiliLunarClass4jyecyea.getSoralTerm(201 1,3,21)); 则可得到 2011-3-21的节气为"春分"..如果当日不是节气,返回空字符串 调用范例: 循环2011年的所有节气
  function addJyecyea(ac:ArrayCollection):void{
  for(var i=1;i12;i++)
  {
  for(var j=1;j31;j++)
  {
  var jc:String= RiliLunarClass4jyecyea.getSoralTerm(2011,i,j);
  if(jc!="")
  {
  //DOING SOMETHING...
  package
  {
  public class RiliLunarClass4jyecyea
  {
  public function RiliLunarClass4jyecyea()
  {
  }
  public static var solarTerm:Array = new Array(
  "小寒","大寒","立春","雨水","惊蛰","春分","清明","谷雨","立夏",
  "小满","芒种","夏至","小暑","大暑","立秋","处暑","白露","秋分",
  "寒露","霜降","立冬","小雪","大雪","冬至");
  private static var sTermInfo:Array = new Array(
  0,21208,42467,63836,85337,107014,128867,150921,173 149,195551,218072,
  240693,263343,285989,308563,331033,353350,375494,3 97447,419210,440795,
  462224,483532,504758);
  //===== 某年的第n个节气为几日(从0小寒起算)
  private static function sTerm(y:int, n:int):int
  {
  var offDate:Date = new Date((31556925974.7 * (y - 1900) + sTermInfo[n] * 60000) + Date.UTC(1900, 0, 6, 2, 5));
  return (offDate.getUTCDate());
  }
  /** 核心方法 根据日期(y年m月d日)得到节气 */
  public static function getSoralTerm( y:int, m:int , d:int):String {
  var solarTerms:String;
  if (d == sTerm(y, (m - 1) * 2))
  solarTerms = solarTerm[(m - 1) * 2];
  else if (d == sTerm(y, (m - 1) * 2 + 1))
  solarTerms = solarTerm[(m - 1) * 2 + 1];
  else {
  // 到这里说明非节气时间
  solarTerms = "";
  }
  return solarTerms;
  }
  }
  } 发表于 @ 2011年03月04日 20:39:00 |
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值