编程天数
直接算两个日期距离公元元年1月1日的天数:
若干个完整的年,若干个完整的月,若干天,加起来之后两个天数相减就行了.
日期的合法性,闰年之类的就不罗嗦了.
‘贰’ c语言编写程序,输入某年某月,求该月的天数
#include<iostream.h>
voidmain()
{
intYear,Month,Day;
cout<<"Pleaseenterthecurrentdate(年月以空格分隔):";
cin>>Year>>Month;
while(Month<=0||Month>12)
{
cout<<"输入时间有误,请重新输入:";
cin>>Year>>Month;
}
switch(Month)
{
case4:
case6:
case8:
case9:
case11:
Day=30;
break;
case2:
if(Year%400==0||Year%4==0&&nYear%100!=0)
Day=29;
else
Day=28;
break;
default:Day=31;
}
cout<<"该月天数为:"<<Day<<"天";
}
‘叁’ 给定年月日 怎样用C语言编程计算2个日期之间的时间天数
1970 年以后的时间,可以用 time.h 里的函数计算。时间精度为秒。按题目要求,输出时间单位用天。程序如下:
#include <stdio.h>
#include <time.h>
time_t YMD_hhmmss_2_s70(int Y, int M, int D, int hh, int mm, int ss){
struct tm *target_tm;
time_t tt;
time (&tt);
target_tm=localtime(&tt);
target_tm->tm_year = Y - 1900;
target_tm->tm_mon= M - 1;
target_tm->tm_mday = D;
target_tm->tm_hour = hh; // hour
target_tm->tm_min = mm;
target_tm->tm_sec = ss;
tt = mktime(target_tm); // from tm to time_t (s)
return tt;
}
int main()
{
int y1,m1,d1,y2,m2,d2;
time_t t1,t2;
int dt;
printf("input y1 m1 d1: ");
scanf("%d %d %d",&y1,&m1,&d1);
printf("\ninput y2 m2 d2: ");
scanf("%d %d %d",&y2,&m2,&d2);
t1 = YMD_hhmmss_2_s70(y1,m1,d1,0,0,0);
t2 = YMD_hhmmss_2_s70(y2,m2,d2,0,0,0);
dt = (t2-t1)/(24*3600);
printf("\ndt=%d\n",dt);
return 0;
}
这里未包含日期的合法性判断。
1970 年以前 要另写程序。某年的日子是当年的第几天可用下面函数得出:
int YMD_2_JD(int Y, int M, int D){
const short MonthDay[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int JD,i;
JD=D;
for (i=0;i<M;i++) JD+=MonthDay[i];
if (((Y%4==0)&&(Y%100!=0)||(Y%400==0)) && (M>2)) JD++;
return JD;
}
整年的天数,涉及闰年的判断:
某年是否闰年,用 (Y%4==0)&&(Y%100!=0)||(Y%400==0) 判断。闰年366天,平年365天。 有了这些,写程序不难。
未考虑公元前的年月日计算。
‘肆’ 输入日期自动计算天数
是的,您可以使用编程语言编写一个程序,让用户输入日期,然后自动计算出这个日期是这一年中的第几天。
下面是一个Python示例代码:
from datetime import datetime
date_str = input("请输入日期,格式为(YYYY-MM-DD):")
date = datetime.strptime(date_str, "%Y-%m-%d")
day_of_year = date.timetuple().tm_yday
print("这个枝简日期是这一年中的第{}天。宽拍".format(day_of_year))
这个程序使用Python内置的datetime模块,让用户输入一个日期,然后计算出这个日期是这一年中的第几天。其中,strptime方法将字符串格式的日期转换为datetime对象,timetuple方法获取时间元组,tm_yday属性获取这个日期是这一年中的第几天。最后,程序输出结猛巧裤果,告诉用户这个日期是这一年中的第几天。
‘伍’ c语言用switch编程一个月有多少天,为什么我输出的结果没有天数,输出的只有年和月
用switch选择的:
#include<stdio.h>
int main()
{
int y,m;
printf("请依次输入年,月:\n");
scanf("%d,%d",&y,&m); //上机时注意打逗号,也可修改为其他格式
switch(m)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:printf("这个月有31天\n");break;
case 2 : if(y%4==0&&y%100!=0||y%400==0) //最基本的判断闰年的条件
printf("这个月有29天\n");
else printf("这个月有28天\n");break;
case 4:
case 6:
case 9 :
case 11:printf("这个月有30天\n");break;
}
return 0;
}
用指针型列举的:
#include<stdio.h>
int a[]={31,28,31,30,31,30,31,31,30,31,30,31},*p1,*p2,*p3,i=1,k=0;
int main()
{
int p1,p2;
printf("请依次输入年·月:\n");
scanf("%d%d",&p1,&p2);
if(p1%4==0&&p1%100!=0||p1%400==0)
a[1]=29;
if(p2>12)
printf("您的输入有误!\n");
printf("这个月的天数为:%d\n",a[p2-1]);
return 0;
}#include <stdio.h>
main()
{int a,b;
printf("请输入年份和月份:\n");
scanf("%d%d",&a,&b);
if (a%4==0&&a%100!=0)
if(b==2)
printf("这个月有29天\n");
else if (b==1||b==3||b==5||b==7||b==8||b==10||b==12)
printf("这个月有31天\n");
else
printf("这个月有30天\n");
else if(b==2)
printf("这个月有28天\n");
else if (b==1||b==3||b==5||b==7||b==8||b==10||b==12)
printf("这个月有31天\n");
else
printf("这个月有30天\n");}
普通
#include <stdio.h>
main(){
int a,b;
printf("请输入年份和月份:\n");
scanf("%d%d"茄州让,&a,&b);
if (a%4==0&&a%100!=0)
if(b==2)
printf("这个月有29天\n");
else if (b==1||b==3||b==5||b==7||b==8||b==10||b==12)
printf("这个月有31天\n");
else
printf("这个月有30天\n");
else if(b==2)
printf("这个颤局月有28天\n");
else if (b==1||b==3||b==5||b==7||b==8||b==10||b==12)
printf("这个月有31天\n");
else
printf("这个月有30天\n");}
(5)编程天数扩展阅读
switch 语句可以处理多分支选择问题,根据其中break 语句的使用方法,一般分三种情况。
在switch 语句的每个语句迹蚂段中都使用break 语句,这是switch 语句的主要使用方法,一般形式为:
switch (表达式)
case 常量表达式1: 语句段1; break;
case 常量表达式2: 语句段2; break;
case常量表达式n: 语句段n; break;
case常量表达式n+1:语句段n+ 1; break;
default :
‘陆’ 给定某年某月的数据,输出此月的天数的C语言编程怎么写
如下:
#include<iostream.h>
voidmain()
{
intYear,Month,Day;
cout<<"Pleaseenterthecurrentdate(年月以空格分隔):";
cin>>Year>>Month;
while(Month<=0||Month>12)
{
cout<<"输入时间有误,请重新输入:";
cin>>Year>>Month;
}
switch(Month)
{
case4:
case6:
case8:
case9:
case11:
Day=30;
break;
case2:
if(Year%400==0||Year%4==0&&nYear%100!=0)
Day=29;
else
Day=28;
break;
default:Day=31;
}
cout<<"该月天数为:"<<Day<<"天";
}
介绍
C语言是一种结构化语言。它层次清晰,便于按模块化方式组织程序,易于调试和维护。C语言的表现能力和处理能力极强。它不仅具有丰富的运算符和数据类型,便于实现各类复杂的数据结构。
它迹弊还可以直接访问内存的物理地址,进行位(bit)一级的世州数操作。由于C语言实现了对硬件的编程操作,因此C语言集高级语言和低级语言的功能于一体。
既可用于系统软件的搜首开发,也适合于应用软件的开发。此外,C语言还具有效率高,可移植性强等特点。因此广泛地移植到了各类各型计算机上,从而形成了多种版本的C语言。
‘柒’ 编写一个程序,输入年,月,,打印出该年的天数
输入年,月,打印出该年的天数:
#include<stdio.h>
main()
{
int y,m,d;
printf("year month=");scanf("%d%d",&y,&m);
switch(m){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:d=31;break;
case 4:
case 6:
case 9:
case 11:d=30;break;
case 2:if (y%4==0 && y%100!=0 || y%400==0) d=29; else d=28;
}
printf("days=%d
",d);
}
(7)编程天数扩展阅读:
输入某年某月(散基包括闰年),编程输出该年的该月拥有的天数:
#include<stdio.h>
#define MONTHS 12
int main(){
int days[2][MONTHS]={{31,28,31,30,31,30,31,31,30,31,30,31},
{31,29,31,30,31,30,31,31,30,31,30,31}};
int year,month;
do{
printf("Input year,month:");
scanf("%d,%d",&year,&month);
}while(month<1||month>12);
if(((year%4==0)&&(year%100 !=0))||(year%400==0))
printf("The number of days is %d ",days[1][month-1]);
else
printf("The number of days is %d ",days[0][month-1]);
return 0;
}
‘捌’ 从键盘输入一个年月日,编程求这一天到年底的天数
假设输入日期格式为:yyyy-mm-dd,如2022-1-1,C语言代码如下:
#include <stdio.h>
int main() {
int y, m, d, i;
scanf("%d-%d-%d", &y, &m, &d); // 要求输入日期格式为yyyy-mm-dd
姿漏桥 int month[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
if ((y % 4 == 0 && y % 100 != 0) || (y % 400 == 0)) // 闰年
month[2] = 29; // 闰年2月为29天
if (m <= 0 || m > 12) {
printf("月份%d不属于[1,12],程序退出 ", m);
return -1;
}
int days = month[m] - d; // 距当月月底的天数
if (days < 0) {
printf("%d年%d月最多%d天,程序退出 ", y, m, month[m]);
return -1;
}
for (i = m + 1; i <= 12; i++)
days += month[i]; // 下月开始距年底的天数
printf("%d ", days);
return 0;
}
运行结果如下:
输入2022-1-1,2022年为平年搜颂,一年共365天迹猛,所以2022年第一天距年底还有364天
输出为364,符合题意,望采纳~