【C语言】日期输出

C语言 明日计算器

输入今天(today)日期可计算出第二天(tomorrow)日期。

#include<stdio.h>
#include<stdbool.h>
//声明结构体变量 
struct date{
	int month;
	int day;
	int year;
};

bool isLeap(struct date d);//判断是否闰年 
int numberOfDays(struct date d);// 

int main(int argc,char const *argv[])
{
	struct date today,tomorrow;
	
	printf("Enter today's date(mm dd yyyy):");
	scanf("%d %d %d",&today.month,&today.day,&today.year);
	
	if(today.day!=numberOfDays(today)){
		tomorrow.day=today.day+1;
		tomorrow.month=today.month;
		tomorrow.year=today.year;
	}else if(today.month==12){
		tomorrow.day=1;
		tomorrow.month=1;
		tomorrow.year=tomorrow.year+1;
	}else{
		tomorrow.day=1; 
		tomorrow.month=today.month+1;
		tomorrow.year=today.year;
	}
	printf("Tomorrow's date is %d-%d-%d.\n",tomorrow.year,tomorrow.month,tomorrow.day);
	return 0;
}
//通过输入的月份得到返回的天数 
int numberOfDays(struct date d)
{
	int days;
	const int daysPerMonth[12]={31,28,31,30,31,30,31,31,30,31,30,31}; 
	if(d.month==2&&isLeap(d)){
		days=29;
	}else{
		days=daysPerMonth[d.month-1];//数组下标-1 
	}
	return days;//单一出口 
} 
//判断2月有几天 
bool isLeap(struct date d)
{
	bool leap =false;
	if((d.year%4==0&&d.year%100!=0)||d.year%400==0){
		leap=true;
	}
	return leap;
}

题目来源于翁恺老师c语言课程。😊

### C语言中的日期时间输入输出 在C语言中处理日期时间的输入输出主要依赖于`scanf`和`printf`这两个函数。对于日期的具体格式化,可以通过指定格式说明符来实现精确的数据读写。 #### 使用 `scanf` 函数进行日期输入 为了确保能够正确解析用户输入的日期信息,通常会采用固定长度的方式来获取年份、月份和日的信息: ```c #include <stdio.h> int main() { int year, month, day; // 假设输入格式为 YYYY MM DD printf("请输入您的出生日期 (YYYY MM DD): "); scanf("%4d %2d %2d", &year, &month, &day); } ``` 这段代码定义了一个简单的交互界面提示用户按照特定顺序输入完整的四位数表示的年份、两位数表示的月份以及两位数表示的日[^4]。 #### 利用 `printf` 实现带填充零的时间显示 当需要打印出带有前导零的日子或月份时,可以在格式字符串里加入额外参数以满足需求: ```c // 打印结果形如 "year=2013 month=02 date=25" printf("year=%04d\nmonth=%02d\ndate=%02d", year, month, day); ``` 这里使用了 `%0Nd` 的形式指定了最小字段宽度 N 并且如果实际值不足则前面补足相应数量的 '0' 来达到预期效果[^5]. #### 完整示例程序 下面是一个综合上述知识点的例子,该例子展示了如何从终端接受用户的生日并将其优雅地呈现出来: ```c #include <stdio.h> int main(){ int y,m,d; // 提醒用户输入其出生日期 printf("请依次输入您出生的年份(yyyy),月份(mm)及日子(dd):\n"); // 接收三个整型变量作为输入 scanf("%4d%2d%2d",&y,&m,&d); // 将接收到的数据按一定格式输出到屏幕上 printf("\nyour birthday is:\n"); printf("year=%04d\nmonth=%02d\nday=%02d\n",y,m,d); return 0; } ``` 这个小程序首先请求用户提供他们的出生日期,接着利用之前提到的方法完成数据采集工作最后再把它们整理成易于阅读的形式反馈给使用者.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值