C语言小程序 计算第二天日期示例代码

输入一个日期,判断下一个日期是哪一天,如果日期输入错误,则调用Linux下的cal命令显示输入的月份
 

复制代码 代码如下:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
int year, month, day;
const int day_30 = 30;
const int day_31 = 31;
int day_month_2 = 0;
char err_flag = 0;
void compute()
{
 printf("输入年月日(1992-7-19):");
 scanf("%d-%d-%d",&year, &month, &day);
 if((year%4==0 && year%100!=0) || (year%400==0))
 {
  day_month_2 = 29;
 }
 else
 {
  day_month_2 = 28;
 }
 if(month>=1 && month<=12)
 {
  if(month == 2)
  {
   if(day > day_month_2)
   {
    err_flag = 1;
   }
   else if(day == day_month_2)
   {
    month++;
    day = 1;
   }
   else
   {
    day++;
   }
  }
  else if(month==1 || month==3 || month==5 || month==7 ||
    month==8 || month==10 || month==12)
  {
   if(day > day_31)
   {
    err_flag = 1;
   }
   else if(day == day_31)
   {
    month++;
    day = 1;
   }
   else
   {
    day++;
   }
  }
  else
  {
   if(day > day_30)
   {
    err_flag = 1;
   }
   else if(day == day_30)
   {
    month++;
    day = 1;
   }
   else
   {
    day++;
   }
  }
  if(month > 12)
  {
   year++;
   month = 1;
  }
 }
 else
 {
  err_flag = 1;
 }
}
int main()
{
 time_t now;
 char ch, c;
 char call_cal[30];
 do
 {
  compute();
  if(err_flag)
  {
   err_flag = 0;
   printf("日期输入错误,调用cal命令查询%d年%d月:nn",year, month);
   sprintf(call_cal, "/usr/bin/cal %d %d",month, year);
   system(call_cal);
   //system("clear");
   while((c=getchar())!='n' && (c=getchar())!=EOF);
   printf("是否重新输入(y/n):");
  }
  else
  {
   printf("第二天为%d-%d-%d。n",year, month, day);
   while((c=getchar())!='n' && (c=getchar())!=EOF);
   printf("是否再次输入日期(y/n):");
  }
  ch = getchar();
 }
 while(ch=='y' || ch=='Y' || ch=='n');
 time(&now);
 printf("Now is %s",ctime(&now));
 puts("Having a goodday!");
 return 0;
}

 

时间: 2024-09-17 12:57:51

C语言小程序 计算第二天日期示例代码的相关文章

C语言小程序 计算第二天日期示例代码_C 语言

复制代码 代码如下: #include <stdio.h>#include <stdlib.h>#include <string.h>#include <time.h>int year, month, day;const int day_30 = 30;const int day_31 = 31;int day_month_2 = 0;char err_flag = 0;void compute(){ printf("输入年月日(1992-7-19

格式-一个c语言小程序求解?

问题描述 一个c语言小程序求解? #include int main() { double a=0,b=0; scanf("%f%d",&a,&b); printf("%fn%dn",a,b); system("pause"); return 0; } 输出结果如图所示,为什么输入格式以浮点数形式输入不可以正确输出,而整形的可以 解决方案 C语言格式输入函数scanf()详解 解决方案二: 这是其中对 float 和 double

c语言-C语言小程序运行错误,求解?

问题描述 C语言小程序运行错误,求解? #include 2 int main() 3 { 4 int i,j; 5 char ch; 6 for(i=1;i<5;i++) 7 { 8 char ='A'+i-1; 9 for(j=1;j<2*i-1;j++) 10 printf("%cn",ch); 11 } 12 return 0; 13 } 14 15 A.c: 在函数'main'中: A.c:8:8: 错误: expected identifier or '(' b

微信小程序 滚动选择器(时间日期)详解及实例代码

微信小程序  滚动选择器(时间日期)详解 微信小程序自己封装了很多控件,用起来确实很方便,如果这是Android里面,还需要自己去定义,不废话,效果图: 一起来看看怎么实现的呢?看完你应该就该说,尼玛,这就行啦-. 这个效果呢,要用到picker组件,动画从底部弹起的滚动选择器,现支持三种选择器,通过mode来区分,分别是普通选择器,时间选择器,日期选择器,默认是普通选择器. 看下相应的属性: 具体的来看看代码,布局: <view class="section" > <

C语言小程序 如何判断两个日期之差

输入两个日期,计算之间相差多少天. 用了两种方法实现,第二种利用结构体,代码比较清晰,其余的都一样   1.普通的写法 复制代码 代码如下: #include <stdio.h> int leapyear(int year) {  if((year%4==0 && year%100!=0) || year%400==0)   return 1;  else   return 0; } int days(int *day1, int *day2) {  int i=0;  int

C语言小程序 如何判断两个日期之差_C 语言

1.普通的写法 复制代码 代码如下: #include <stdio.h>int leapyear(int year){ if((year%4==0 && year%100!=0) || year%400==0)  return 1; else   return 0;}int days(int *day1, int *day2){ int i=0; int *tmp; int diff = 0; const int month[13]={0,31,28,31,30,31,30,

C语言小程序 数组操作示例代码

对数组进行操作,查找.插入.删除   复制代码 代码如下: #include <stdio.h> #include <stdlib.h> #include <time.h> int size = 0; int flag = 0; void output(int *arry) {  int i = 0;  for(i=0; i<size; i++)  {   printf("arry[%d]=%dt",i,arry[i]);   if((i+1)

C语言小程序 如何判断三角型类型

第一个判断三角形的类型,两个浮点型数据不能直接判断相等,为了输入方便一些,自己设置的精度比较低,10^(-3)   复制代码 代码如下: #include <stdio.h> #include <stdlib.h> #define EPSINON  1e-3 #define ABS(a)  (((a)>0)?(a):(-a)) //?:不支持表达式嵌套 #define ZERO(x)  ((x)>-EPSINON && (x)<EPSINON) #

C语言小程序 杨辉三角示例代码

输入要显示的杨辉三角的行数,会打印出金字塔型的杨辉三角,不过行数太多的话,效果不太好,可以再调整一下格式控制   复制代码 代码如下: #include <stdio.h> #include <stdlib.h> int main() {  int i,j,k;  int line;  int *prev, *next;  printf("输入要查看杨辉三角的行数(大于2):");  scanf("%d",&line);  if(li