`

C 把年龄转换为天数

 
阅读更多

计算从出生年到现在的天数(假设出生日期是*年1月1日)

代码如下:

AgeToDay.cpp

 

/*AgeToDay.cpp -- 把自己的年龄转换成天数*/

#include<stdio.h>
#include<time.h>
#include<stdlib.h>

#define RUNYEAR 366       //闰年天数
#define PINGYEAR 365      //平年天数

int getThisYear();  //得到当前年份     char year[]表示指向char类型的指针
bool isRunYear(int year);   //判断是否是闰年
int getDays(int year,int age,int days);   //得到天数
int getNowDays();  //得到今天是今年的第几天

int main(void)
{
	int year;			//今年
	int myAge;		//年龄
	int days;			//得到今天是今年的第几天
	int allDays;
	year = getThisYear();     //得到当前年份
	days = getNowDays();    
	
	printf("Please enter your age:");
    if(scanf("%d",&myAge) == 1 && myAge > 0 && myAge < 150)
	{
       allDays = getDays(year,myAge,days);
	   printf("the days you have gone is : %d\n",allDays);
	}
	else
	{
		printf("输入格式错误!\n");
	}
	    

	return 0;
}

//得到当前系统年份
int getThisYear()     
{
	struct tm *nowtime; //时间结构
	time_t local_time;   //本地时间
    char year[5];  //今年
	local_time = time(NULL);
	nowtime = localtime(&local_time);
	strftime(year,5,"%Y",nowtime);      //转换成2001形式

	return atoi(year);
}

int getNowDays()
{
	struct tm *nowtime;
	time_t local_time;
    char days[10];
    
	local_time = time(NULL);
	nowtime = localtime(&local_time);
	strftime(days,10,"%j",nowtime);
	puts(days);
	return atoi(days);
}
//判断某年是否为闰年,若是则返回true
bool isRunYear(int year)
{
	if((year % 4 ==0 && year % 100 !=0) || year % 400 == 0)
		return true;
	return false;
}



//得到从出生年到现在的天数(假设是1月1号出生)
int getDays(int year,int age,int days)
{
        int count = 0; //从当前年份到出生年份含有的闰年数
		int alldays;
		for(int i = year -1; i < year - age ; i-- )
		{
			if(isRunYear(i))
				count++;
		}
		alldays = RUNYEAR * count +PINGYEAR * (age - 1  - count) + days;

        return alldays;
}
0
0
分享到:
评论

相关推荐

    c primer plus 第五版编程练习全部答案

    3. 年龄转换为天数:该程序要求将用户的年龄转换为天数,并输出两者的值。 4. 夸奖消息输出:该程序要求使用两个用户定义的函数输出夸奖消息,包括三次输出“For he's a jolly good fellow!”和一次输出“Which ...

    Cprimerplus后编程练习答案完整.docx

    本练习要求编写一个程序,将用户的年龄转换为天数,并输出年龄和天数。 知识点: * 变量声明和赋值 * 数据类型(整数) * 基本运算符(乘法) 练习5:输出夸奖消息 本练习要求编写一个程序,输出夸奖消息,并...

    C Primer Plus 第五版 编程练习全部答案 doc

    3. 年龄与天数转换:这个练习涉及简单的算术运算,将年龄转换为天数。要注意的是,实际的转换要考虑闰年和平年,但这里简化了问题,忽略了这种差异。 4. 用户定义函数的应用:练习4演示了如何定义和调用自定义函数...

    C_primer_plus课后答案

    3. 此练习要求将年龄转换为天数,这是一个简单的乘法运算。要注意的是,这个程序假设每年都是365天,忽略了闰年的情况。实际的年龄到天数转换要考虑闰年。 4. 这个练习涉及到函数的定义和调用。你需要创建两个函数...

    C primer plus编程练习答案

    - **题目要求**:编写程序,将年龄转换为天数,并输出原始年龄和对应的天数。 - **代码示例**: ```c #include int main(void) { int age = 22; printf("Age: %d\n", age); printf("Days: %d\n", age * 356)...

    C_Primer_Plus(第五版)编程练习 全部答案

    - **解析**:基于简单的数学计算,将年龄转换为天数。 - **实现代码**: ```c #include int main() { int age = 22; int days = age * 365; printf("Age: %d\n", age); printf("Days: %d\n", days); ...

    C primer plus(第五版)课后编程练习答案

    - **题目要求:** 编写程序将年龄转换为天数(不考虑平年与闰年问题)。 - **示例代码:** ```c #include int main(void) { int age = 22; int days = age * 356; printf("Age: %d\n", age); printf(...

    c primer plus的答案精校版,你值得拥有

    - 编写程序,输入年龄值,并计算对应的天数(不考虑闰年),最后输出原始年龄和转换后的天数。 4. **使用用户定义的函数输出文本**: - 创建两个用户定义的函数`printf1()`和`printf2()`,分别输出夸奖消息和最后...

    C_primer_plus(第五版)练习答案

    - 年龄转换为天数的简单计算方法是:年龄 * 365(不考虑闰年)。 - 这里假设每年有356天,忽略了闰年的情况。 4. **编写程序输出特定字符串** **代码示例:** ```c #include void printf1(void); void ...

    C_Primer_Plus_编程练习答案

    程序首先定义了两个整型变量`ageyears`和`agedays`,然后通过乘法运算将年龄转换为天数,并使用`printf`函数打印结果。 **代码分析**: ```c #include int main(void) { int ageyears; // 定义年龄变量 int ...

    C语言源代码学习(C Language)

    `int ageyears`和`int agedays`分别用于存储年龄(年)和天数。这里还展示了`long`类型的使用,以处理可能超出`int`范围的大数值。`agedays`的计算使用了乘法运算符`*`,并使用`printf`进行格式化输出。 3. **函数...

    C_Primer_Plus课后练习答案(最全源码)

    本题要求将年龄转换为天数,并输出原始年龄和对应的天数。这里假设一年有356天,不考虑闰年的影响。代码中首先定义了一个整型变量`age`并赋予一个值,接着计算年龄转换为天数的结果,并分别输出这两个值。 **示例...

    C_Primer_Plus(第五版)课后习题答案

    例如,PE 2-1展示了如何使用`printf`进行多行输出,PE 2-3计算年龄的天数,引入了整型变量和类型转换,PE 2-4则展示了如何定义和调用自定义函数,PE 2-5展示了变量的赋值和简单的算术操作,PE 2-7演示了函数的嵌套...

    山东大学计算机学院C语言限选课第一周实验报告

    - 计算年龄时,需考虑闰年和每个月的天数,`struct tm`结构中的`tm_yday`字段可以直接获取当年的天数。 4. **加密算法**: - 利用ASCII码值进行加减操作实现简单的字符加密。 - 对于非字母字符,不进行处理以...

    (完整word版)CPrimerPlus第6版编程练习答案(已下载).doc

    程序将计算用户的年龄,并将其转换为天数。 PE 2-4 本练习题是关于函数的使用。程序定义了两个函数jolly和deny,演示了函数的调用和返回值。 PE 2-6 本练习题是关于变量的使用和基本的算术运算。程序将计算...

    C Primer Plus答案

    代码中定义了两个整型变量`ageyears`和`agedays`,分别用于存储年龄(以年为单位)和年龄对应的天数。通过将年龄乘以365得到天数,然后使用`printf`函数以友好的格式输出结果。 ```c ageyears = 44; agedays = 365 ...

    C Primer Plus中文版第五版的课后答案

    `printf`函数被用于格式化输出,展示年龄转换的结果。值得注意的是,对于较大的数值,可能需要使用`long`类型来避免溢出。 ### 编程练习2-4:函数调用 本练习重点在于函数的定义和调用。这里定义了两个函数`jolly...

    C-primer-plus(第五版)课后编程练习答案(完整).doc

    《C-primer-plus(第五版)》是一本深入浅出介绍C语言编程的书籍,其课后编程练习旨在帮助读者巩固所学知识,提升编程能力。以下是对这些编程练习的详细解析: 1. 这个练习要求编写一个英寸到厘米的转换程序。首先,...

    C_Primer_Plus_5th_Edition_答案网友版

    - 将年龄转换为大致的天数(不考虑闰年) **代码示例:** ```c #include int main(void) { int age = 22; // 假设年龄为22岁 printf("Age: %d\n", age); printf("Day: %d\n", age * 365); // 每年按365天计算 ...

    C_primer_plus(第五版)课后编程练习答案

    年龄转换成天数是简单的算术运算,注意这里假设每年有365天,忽略了闰年的存在。 4. 练习中要求使用两个用户定义的函数,一个用于输出特定消息,另一个输出最后一行。这展示了函数的定义和调用,以及如何通过重复...

Global site tag (gtag.js) - Google Analytics