• 大小: 3KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-26
  • 语言: C/C++
  • 标签: 24节气  

资源简介

给定年份,获取指定年份24节气的计算方法,精确到分钟。 c++写的一个类。

资源截图

代码片段和文件信息

///////////////////////////////////////////////////////////
//  JieQi.cpp
//  Implementation of the Class JieQi
//  Created on:      26-十一月-2009 9:27:06
//  Original author: Administrator
// 功能:按给定的年份计算24节气的精确时间
// 计算结果与寿星万年历有误差,在正负1小时以内
// 注意:个别年份的个别节气有例外,程序中只列出了2000年以后的情况
///////////////////////////////////////////////////////////

#include “stdafx.h“
#include “public.h“
#include “JieQi.h“
using namespace std;

extern string ssDiZhi[12]ssTianGan[10];
JieQi::JieQi(){

}

JieQi::JieQi(int nYear)
{
m_nYear = nYear;
}

JieQi::~JieQi(){

}

map JieQi::GetJieQi(int nYear){

map mapJieQi;
m_nYear = nYear;
mapJieQi.insert(make_pair(LICHUNgetLichun()));//
mapJieQi.insert(make_pair(YUSHUIgetYushui()));//
mapJieQi.insert(make_pair(JINGZHEgetJingzhe()));//
mapJieQi.insert(make_pair(CHUNFENgetChunfen()));//
mapJieQi.insert(make_pair(QINGMINGgetQingming()));//
mapJieQi.insert(make_pair(GUYUgetGuyu()));//

mapJieQi.insert(make_pair(LIXIAgetLixia()));//
mapJieQi.insert(make_pair(XIAOMANgetXiaoman()));//
mapJieQi.insert(make_pair(MANGZHONGgetMangzhong()));//
mapJieQi.insert(make_pair(XIAZHIgetXiazhi()));//
mapJieQi.insert(make_pair(XIAOSHUgetXiaoshu()));//
mapJieQi.insert(make_pair(DASHUgetDashu()));//

mapJieQi.insert(make_pair(LIQIUgetLiqiu()));//
mapJieQi.insert(make_pair(CHUSHUgetChushu()));//
mapJieQi.insert(make_pair(BAILUgetBailu()));//
mapJieQi.insert(make_pair(QIUFENgetQiufen()));//
mapJieQi.insert(make_pair(HANLUgetHanlu()));//
mapJieQi.insert(make_pair(SHUANGJIANGgetShuangjiang()));//

mapJieQi.insert(make_pair(LIDONGgetLidong()));//
mapJieQi.insert(make_pair(XIAOXUEgetXiaoxue()));//
mapJieQi.insert(make_pair(DAXUEgetDaxue()));//
mapJieQi.insert(make_pair(DONGZHIgetDongzhi()));//
mapJieQi.insert(make_pair(XIAOHANgetXiaohan()));//
mapJieQi.insert(make_pair(DAHANgetDahan()));//
return  mapJieQi;
}

CTime JieQi::getLichun()
{
//公式解读:年数的后2位乘0.2422加3.87取整数减闰年数。21世纪C值=3.87,22世纪C值=4.15。
//举例说明:2058年立春日期的计算步骤[58×.0.2422+3.87]-[(58-1)/4]=17-14=3,则2月3日立春。
float mm;
if (m_nYear < 2100)
{
mm = ((m_nYear%100)*0.2422 + 3.87) - (m_nYear%100 - 1)/4;
}
else
{
mm = ((m_nYear%100)*0.2422 + 4.15) - (m_nYear%100 - 1)/4;
}

return  Compute(m_nYearMonth_Februarymm);
}

CTime JieQi::getYushui()
{
//计算 [Y*D+C]-L公式解读:年数的后2位乘0.2422加18.74取整数减闰年数。21世纪雨水的C值18.73。
//举例说明:2008年雨水日期=[8×.0.2422+18.73]-[(8-1)/4]=20-1=19,2月19日雨水。
float mm = ((m_nYear%100)*0.2422 + 18.73) - (m_nYear%100 - 1)/4;
return  Compute(m_nYearMonth_Februarymm);
}

CTime JieQi::getJingzhe()
{
//公式解读:年数的后2位乘0.2422加5.63取整数减闰年数。21世纪惊蛰的C值=5.63。
//举例说明:2088年惊蛰日期=[88×.0.2422+5.63]-[88/4]=26-22=4,3月4日是惊蛰。
float mm = ((m_nYear%100)*0.2422 + 5.63) - (m_nYear%100)/4;
return  Compute(m_nYearMonth_Marchmm);
}

CTime JieQi::getChunfen()
{
//公式解读:年数的后2位乘0.2422加20.646取整数减闰年数。21世纪春分的C值=20.646。
//举例说明:2092年春分日期=[

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      12065  2009-12-01 14:09  JieQi.cpp

     文件       1256  2009-12-01 13:09  JieQi.h

----------- ---------  ---------- -----  ----

                13321                    2


评论

共有 条评论