关闭

使用solarlunar库的阴阳历转换

标签: datec++
978人阅读 评论(1) 收藏 举报
分类:

 

使用solarlunar库的阴阳历转换:

 整个代码十分简单。

DEV C++ (mingw)

#include <stdio.h>
#include 
<stdlib.h>
#include 
"solarlunar.h"

/* input format: sl -[s|l]   year.month.day */
/* the lunar calendar date range is limited by solarlunar.h: 1899/12/1 ~ 2099.12.30 */

static void usage(void);

int main(int argc, char *argv[])
{
    
int year, month, day;
    
int i;
    
/* convert flag, 0: solar convert to luanr. 1: lunar convert solar */
    
int convert_f = 0;
    solar_calendar so;
    lunar_calendar lu;
    
    
/* input check */
    
if( argc < 3 || argv[1][0]!= '-' ||
         
!(argv[1][1== 's' || argv[1][1== 'l')) {
        usage();
        exit(
1);
    }

    
    
/* get convert flag */
    convert_f 
= (argv[1][1== 's' ? 0 : 1);
    
    
/* converting */
    
for(i = 2; i < argc; i++{
        sscanf(argv[i], 
"%d.%d.%d"&year, &month, &day);
        
switch(convert_f) {
            
case 0:
                so 
= solar_creat_date(year, month, day);
                lu 
= solar2lunar(so);
                printf(
"%d.%d.%d ", lunar_get_year(lu), lunar_get_month(lu), lunar_get_day(lu));
                
break;
            
case 1:
                lu 
= lunar_creat_date(year, month, day);
                so 
= lunar2solar(lu);
                printf(
"%d.%d.%d ", solar_get_year(so), solar_get_month(so), solar_get_day(so));
                
break;
            
default :
                exit(
2);
        }

    }
        return 0;
}



static void usage(void)
{
    printf(
"sl -[s|l] year1.month1.day1 year2.month2.day2 ... "
            
"-s: solar calendar date convert to lunar calendar date. "
            
"-l: lunar calendar date convert to lunar calendar date.");
}

 

solarlunar 库:

http://blog.csdn.net/luodongshui/archive/2007/09/29/1807088.aspx

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:33074次
    • 积分:605
    • 等级:
    • 排名:千里之外
    • 原创:23篇
    • 转载:0篇
    • 译文:0篇
    • 评论:20条
    最新评论