计算从出生年到现在的天数(假设出生日期是*年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;
}
分享到:
相关推荐
3. 年龄转换为天数:该程序要求将用户的年龄转换为天数,并输出两者的值。 4. 夸奖消息输出:该程序要求使用两个用户定义的函数输出夸奖消息,包括三次输出“For he's a jolly good fellow!”和一次输出“Which ...
本练习要求编写一个程序,将用户的年龄转换为天数,并输出年龄和天数。 知识点: * 变量声明和赋值 * 数据类型(整数) * 基本运算符(乘法) 练习5:输出夸奖消息 本练习要求编写一个程序,输出夸奖消息,并...
3. 年龄与天数转换:这个练习涉及简单的算术运算,将年龄转换为天数。要注意的是,实际的转换要考虑闰年和平年,但这里简化了问题,忽略了这种差异。 4. 用户定义函数的应用:练习4演示了如何定义和调用自定义函数...
3. 此练习要求将年龄转换为天数,这是一个简单的乘法运算。要注意的是,这个程序假设每年都是365天,忽略了闰年的情况。实际的年龄到天数转换要考虑闰年。 4. 这个练习涉及到函数的定义和调用。你需要创建两个函数...
- **题目要求**:编写程序,将年龄转换为天数,并输出原始年龄和对应的天数。 - **代码示例**: ```c #include int main(void) { int age = 22; printf("Age: %d\n", age); printf("Days: %d\n", age * 356)...
- **解析**:基于简单的数学计算,将年龄转换为天数。 - **实现代码**: ```c #include int main() { int age = 22; int days = age * 365; printf("Age: %d\n", age); printf("Days: %d\n", days); ...
- **题目要求:** 编写程序将年龄转换为天数(不考虑平年与闰年问题)。 - **示例代码:** ```c #include int main(void) { int age = 22; int days = age * 356; printf("Age: %d\n", age); printf(...
- 编写程序,输入年龄值,并计算对应的天数(不考虑闰年),最后输出原始年龄和转换后的天数。 4. **使用用户定义的函数输出文本**: - 创建两个用户定义的函数`printf1()`和`printf2()`,分别输出夸奖消息和最后...
- 年龄转换为天数的简单计算方法是:年龄 * 365(不考虑闰年)。 - 这里假设每年有356天,忽略了闰年的情况。 4. **编写程序输出特定字符串** **代码示例:** ```c #include void printf1(void); void ...
程序首先定义了两个整型变量`ageyears`和`agedays`,然后通过乘法运算将年龄转换为天数,并使用`printf`函数打印结果。 **代码分析**: ```c #include int main(void) { int ageyears; // 定义年龄变量 int ...
`int ageyears`和`int agedays`分别用于存储年龄(年)和天数。这里还展示了`long`类型的使用,以处理可能超出`int`范围的大数值。`agedays`的计算使用了乘法运算符`*`,并使用`printf`进行格式化输出。 3. **函数...
本题要求将年龄转换为天数,并输出原始年龄和对应的天数。这里假设一年有356天,不考虑闰年的影响。代码中首先定义了一个整型变量`age`并赋予一个值,接着计算年龄转换为天数的结果,并分别输出这两个值。 **示例...
例如,PE 2-1展示了如何使用`printf`进行多行输出,PE 2-3计算年龄的天数,引入了整型变量和类型转换,PE 2-4则展示了如何定义和调用自定义函数,PE 2-5展示了变量的赋值和简单的算术操作,PE 2-7演示了函数的嵌套...
- 计算年龄时,需考虑闰年和每个月的天数,`struct tm`结构中的`tm_yday`字段可以直接获取当年的天数。 4. **加密算法**: - 利用ASCII码值进行加减操作实现简单的字符加密。 - 对于非字母字符,不进行处理以...
程序将计算用户的年龄,并将其转换为天数。 PE 2-4 本练习题是关于函数的使用。程序定义了两个函数jolly和deny,演示了函数的调用和返回值。 PE 2-6 本练习题是关于变量的使用和基本的算术运算。程序将计算...
代码中定义了两个整型变量`ageyears`和`agedays`,分别用于存储年龄(以年为单位)和年龄对应的天数。通过将年龄乘以365得到天数,然后使用`printf`函数以友好的格式输出结果。 ```c ageyears = 44; agedays = 365 ...
`printf`函数被用于格式化输出,展示年龄转换的结果。值得注意的是,对于较大的数值,可能需要使用`long`类型来避免溢出。 ### 编程练习2-4:函数调用 本练习重点在于函数的定义和调用。这里定义了两个函数`jolly...
《C-primer-plus(第五版)》是一本深入浅出介绍C语言编程的书籍,其课后编程练习旨在帮助读者巩固所学知识,提升编程能力。以下是对这些编程练习的详细解析: 1. 这个练习要求编写一个英寸到厘米的转换程序。首先,...
- 将年龄转换为大致的天数(不考虑闰年) **代码示例:** ```c #include int main(void) { int age = 22; // 假设年龄为22岁 printf("Age: %d\n", age); printf("Day: %d\n", age * 365); // 每年按365天计算 ...
年龄转换成天数是简单的算术运算,注意这里假设每年有365天,忽略了闰年的存在。 4. 练习中要求使用两个用户定义的函数,一个用于输出特定消息,另一个输出最后一行。这展示了函数的定义和调用,以及如何通过重复...