‘壹’ c语言中如何把月日年输出为年月日
这要看原来的程序中,月日年是怎么组织的?如果分别存放在三个变量中,那么只要把这三个变量的输出顺序交换一下就可以了。
例如,
int y,m,dm,d;
printf("请输入月 日 年:");
scanf("%d%d%d",&m,&d,&y);
printf("%d年%d月%d日",y,m,d);
‘贰’ C语言年月日输出问题
首先,你的闰年判断就有问题。教你个口诀:好谈“四年一润,一百年不润,四百年再润”。
其实就可以用if(yr%4==0||yr%100!=0&&yr%400==0){那么是闰年}
你的检验判断也可以利用mont数组的,首先判断是不是在闰年,然后判断输入days是不友迹碰是大于的mont[mn](州搜如果是闰年要判断二月+1)。
‘叁’ C语言问题 请输入自己的身份证号,输出出生年月日
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
intmain()
{
charid[]="46198704030811";
printf("请输入您的身份证号(18位数字): ");
scanf("%s",id);
printf("您出生在%c%c%c%c年%c%c月%c%c日 ",id[6],id[7],id[8],id[9],id[10],id[11],id[12],id[13]);
system("pause");
return0;
}
‘肆’ C语言格式化输入输出(关于日期)
写下这篇文章,主要是记载自己的学习心得,同时也分享给所有正在学习c语言的小白们。
关于日期的输出呢,看起来是挺简单的,但当题目要求输入比如:2019--10--01或者2019--09--10,正在学习c语言的人(包括我)就会卡在这,如何将1~9的“0”一起输出呢?
其实很简单,这里巧用“0”,既然题目说到0n(n代表1~9月或者日期),那我们肯定要用到“0”呀,那这个“0”该放哪呢,又是个问题。
但不用慌,想想我们之前的输出,就应该知道这个“0”应该这样 printf("%02d",&n);, 而那个2怎么来的呢,就是代表整个宽度为2(因为月份,日期最大占两位数),即%04d表示在输出一个小于4位的数值时,将在前面补0使其总宽度为4位。
因此,在日期时应该: printf("%d %02d %02d",year,month,day);
下面直接放题:
按 yyyy/mm/dd 形式从键盘输入一个日期,按yyyy--mm--dd 形式输出该日期,其中 yyyy, mm, dd 分别表示年、月、日。
输入:
2019/10/01
输出:
2019--10--01
#include<stdio.h>
int main()
{
int year,month,day;
scanf("%d/%d/%d",&year,&month,&day);
printf("%d--%02d--%02d",year,month,day);
}
没错这就可以了,这篇呢只是为了巩固做题的思路,以及给所有的小白看的。当然,还需要大佬们的指导。
‘伍’ 用C语言定义一个包含数组的Date类型的函数,输出年,月,日
#includestructdate//定义结构体类型{inty;intm;intd;};voidmain(){datedt;//定义结构体变量inti,count,mon[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};printf("请输入日期(年月日):");scanf("%d",&dt.y);scanf("%d",&dt.m);scanf("%d",&dt.d);count=dt.d;//把dt.d计入总天数for(i=0;i2&&(dt.y%4==0&&dt.y%100!=0||dt.y%400==0))count+=1;//如果是闰年,则要把3月份和3月份以后的总天数加1printf("这一日是这一年的第%d天\n",count);}
‘陆’ c语言输入一个天数,输出对应的年月天
#include<stdio.h>
intmain()
{
inti,n=0,year=0,month=0,day=0;
printf("请输入天数<输入-1退出测试>:");
scanf("%d",&n);
while(n!=-1)
{
while(n>=360)
{
n-=360;
year++;
}
while(n>=30)
{
n-=30;
month++;
}
while(n>0)
{
n--;
day++;
}
printf("%d年%d月%d日 ",year,month,day);
year=month=day=0;
printf("请输入天数<输入-1退出测试>:");
scanf("%d",&n);
}
return0;
}
‘柒’ C语言输入年份和天数输出对应的年月日
C语言输入年份和天数输出对应的年月日的源代码如下:
#include<iostream>
intday(int&year,int&month);
intmain()
{
intyear{};
intmonth{};
std::cout<<"请输入年和月(空格隔开):";
std::cin>>year>>month;
std::cout<<"该月天数:"<<day(year,month)<<' ';
return0;
}
(7)输出对应的年月日c语言扩展阅读
1、C++ 标准库没有提供所谓的日期类型。C++ 继承了 C 语言用于日期和时间操作的结构和函数。为了使用日期和时间相关的函数和结构,需要在 C++ 程序中引用 <ctime> 头文件。
2、有四个与时间相关的类型:clock_t、time_t、size_t和tm。类型 clock_t、size_t 和 time_t 能够把系统时间和日期表示为某种整数。
‘捌’ 用c语言从键盘任意输入一个日期(年月日),输出第二天的日期(年月日)。
源程序如下:
#include "pch.h"
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
using namespace std;
int main()
{
int s[2][13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31,
0,31,29,31,30,31,30,31,31,30,31,30,31, };
int year = 0;
int month = 0;
int day = 0;
int n, i, daytemp;
int flag = 0;
int nyear = 0, nmonth = 0, nday = 0;
printf("输入年月日
");
scanf("%d%d%d", &year, &month, &day);
//printf("输入天数
");
//scanf("%d",&n);
n = 1;
if (year < 0 || month < 0 || month>12 || day < 1 || n < 0)
{
printf("输入数据错误
");
return 1;
}
daytemp = day + n;//累加天数
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)//闰年置1
flag = 1;
if (day > s[flag][month])
{
printf("输入日期与年月不符.
");
return 1;
}
if (daytemp <= s[flag][month])//当前日期加天数在本月
{
nyear = year;
nmonth = month;
nday = daytemp;
}
else
{
i = month;
nyear = year;
while (daytemp > s[flag][i])//循环递减,直到当前日期加天数在本月
{
daytemp = daytemp - s[flag][i];
i++;
if (i > 12)//超过一年,年累加核姿
{
nyear++;
if ((nyear % 4 == 0 && nyear % 100 != 0) || nyear % 400 == 0)
flag = 1;
else
flag = 0;
i = i - 12;
}
}
nmonth = i;
nday = daytemp;
}
printf("%d年%d月%d日第%d天后是:
", year, month, day, n);
printf("%d年%d月%d日
", nyear, nmonth, nday);
return 0;
}
程序运行结果如下:
(8)输出对应的年月日c语言扩展阅读:
其他实现方式:
int monthsize(int year, int month) {
int days;
if (month == 2) {
正旦if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
return 29;
return 28;
}
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:days = 31; break;
case 4:
case 6:
case 9:
case 11: days = 30; break;
}
return days;
}
int main()
int year, month, day, days;
printf("年 月 日:"改清绝);
while (scanf("%d%d%d", &year, &month, &day) == 3) {
days = monthsize(year, month);
if (days == day) {
if (month == 12) {
++year;
month = 1;
day = 1;
}
else ++month;
}
else ++day;
printf("第二天是:%d/%02d/%02d
", year, month, day);
printf("年 月 日(q to quit):");
}
return 0;
}
‘玖’ C语言:输入身份证号,输出出生年月日
C语言,数字不能和字符串运算。
如果仅为了这样输出,可以全部用字符数组变量。
char year[5],month[3],day[3];
...
charyears[5],month[3],day[3];
...
while(i>=6&&i<10)
{
years[i-6]=str[i];
i++;
}
while(i>=10&&i<12)
{
month[i-10]=str[i];
i++;
}
while(i>=12&&i<14)
{
day[i-12]=str[i];
i++;
}
printf("你是%s年%s月%s日出生的人 ",years,month,day);
这是没有使用字符串操作函数也没有使用指针的方法。
‘拾’ c语言设计万年历 输入任意年份,输出该年12个月份 输入任意年份月份,输出该年月日历
#include<stdio.h>
#include<time.h>
#include<malloc.h>
enumMONTH{January=1,February,March,April,May,June,July,August,September,October,November,December};
structtm*getDate(intyear,intmon);
voidprintTime(time_ttheTime,intyear);
intmain()
{
enumMONTHmon;
time_ttheTime;
structtm*date;
intyear,m;
while(1)
{
printf("输入任意年份及月份:
");
scanf("%d%d",&year,&m);
if(m<1||m>12)
{
printf("月份超出范围,重新输入!
");
continue;
}
mon=m;
break;
}
date=getDate(year,mon);
theTime=mktime(date);//从1900年至此的秒数
printTime(theTime,year);
return0;
}
structtm*getDate(intyear,intmon)
{
structtm*date=(structtm*)malloc(sizeof(structtm));
date->tm_sec=0;
date->tm_min=0;
date->tm_hour=0;
date->tm_year=year-1900;
date->tm_mon=mon-1;
date->tm_mday=1;
date->tm_yday=0;
returndate;
};
voidprintTime(time_ttheTime,intyear)
{
inty,m,wday,i,j;
charwd[7][7]={"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
structtm*date;
date=localtime(&theTime);
y=date->tm_year+1900;
m=date->tm_mon+1;
wday=date->tm_wday;
printf("
------------------开始生成日历----------------------
");
printf("%d年%02d月
",y,m);
i=0;
for(j=0;j<7;j++)
{
printf("%s",wd[wday++]);
if(wday>6)
wday=0;
}
printf("
");
while(1)
{
if(date->tm_mon+1>m)
{
printf("
");
break;
}
printf("%02d日",date->tm_mday);
if(++i==7)
{
printf("
");
i=0;
}
theTime+=24*60*60;
date=localtime(&theTime);
}
}