| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 698 人关注过本帖
标题:转换公历至农历的一段小程序,尚需要进一步验证测试再测试<代码见6楼> ...
取消只看楼主 加入收藏
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
结帖率:99.76%
收藏
已结贴  问题点数:20 回复次数:5 
转换公历至农历的一段小程序,尚需要进一步验证测试再测试<代码见6楼>
话说

204.2除以29.5等于6余27.2  这用c代码咋写啊

换句话说  已知204.2  29.5  如何能够求出来27.2 进而获取27 这才是最终目标

[ 本帖最后由 wp231957 于 2012-12-8 21:44 编辑 ]
搜索更多相关主题的帖子: 测试 如何 
2012-12-08 21:02
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
我试试,这是公历转农历的公式 必须double类型啊

DO IT YOURSELF !
2012-12-08 21:24
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
以下是引用神龙赖了在2012-12-8 21:25:05的发言:

#include  
 
int main(void)
{
    double result = 204.2;
    double number1 = 29.5;
    double value = 0.0;
    int buffer = 0;
    int temp = 0;
 
    buffer = number1*100;
    temp = result*100;
    value = temp % buffer;
 
    printf("%g\n",value/100);
 
    return 0;
}
转换那玩意真麻烦...
用杨兄弟的强制转换就可以  稍后 贴出代码

DO IT YOURSELF !
2012-12-08 21:42
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
转换公历至农历的一段小程序,尚需要进一步验证测试再测试
程序代码:
#include<stdio.h>
#define init_year 1977
int year_sumday(int year,int month,int day)
{
    int sum=0;
    int rui[12]={31,29,31,30,31,30,31,31,30,31,30,31};
    int ping[12]={31,28,31,30,31,30,31,31,30,31,30,31};
    int ruiflag=0;
    if((year%4==0 &&year%100!=0) || year%400==0) ruiflag=1;
    for(int index=0;index<month-1;index++)
    {
        if(ruiflag==1) sum+=rui[index];else sum+=ping[index];
    }
    sum+=day;
    return sum;
}
int main()
{
    int day,month,year,sum=0;
    int q,r;
    int yldate,yldate2;
    printf("\nplease input year,month,day\n");
    scanf("%d %d %d",&year,&month,&day);
    sum=year_sumday(year,month,day);
    q=(year-init_year)/4;
    r=(year-init_year)%4;
    yldate2=(int)((14*q+10.6*(r+1)+sum)/29.5);
    yldate=(int)(14*q+10.6*(r+1)+sum-29.5*yldate2);
    printf("it is the %d th day.\n",yldate);
    return 0;
}

DO IT YOURSELF !
2012-12-08 21:43
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
以下是引用beyondyf在2012-12-8 22:08:02的发言:

如果是公农历转换,那小数点后只保留1位,老哥这精度可有点不够。

我以前也想过做这种转换,但我的天文知识不够也没找到更多资料,所以就放弃了。

农历的计算非常复杂,不是这么简单的公式就能搞定的
多做一些测试就好了
至少目前还没有测到失败数据

DO IT YOURSELF !
2012-12-09 06:07
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
要算几万年  没那么大的野心啊   玩玩而已
也不能赚钱  

DO IT YOURSELF !
2012-12-09 20:47
快速回复:转换公历至农历的一段小程序,尚需要进一步验证测试再测试<代码见6楼> ...
数据加载中...
 
   



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

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