C语言格式化输入输出(关于日期)

Python012

C语言格式化输入输出(关于日期),第1张

写下这篇文章,主要是记载自己的学习心得,同时也分享给所有正在学习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)

}

没错这就可以了,这篇呢只是为了巩固做题的思路,以及给所有的小白看的。当然,还需要大佬们的指导。

#include <stdio.h>

#include <windows.h>

int main()

{

SYSTEMTIME Stime,Etime

GetLocalTime(&Stime)//取得开始计时时间

Sleep(5000)//停5秒

#include<stdio.h>

int year = 0

int month = 0

int day = 0

int hour = 0

int minute = 0

int second = 0

int main()

{

  void inputDate()          /*输入年-月-日 时:分:秒*/

  void nextSceond()         /*计算下一秒的时间*/

  int leapYear(int year)    /*判断是否为闰年*/

  int dayMonth(int month)   /*返回每个月份对应的天数*/

  inputDate()

  leapYear(year)

  dayMonth(month)

  nextSceond()

  system("PAUSE")

  return 0

}

/*函数inputDate()输入年-月-日 时:分:秒*/

void inputDate()

{

  int loop

  for(loop = 0loop <3loop++)

  {

      printf("请输入年-月-日 时:分:秒:")

      scanf("%d-%d-%d %d:%d:%d", &year, &month, &day, &hour, &minute, &second)

      if(month <1 || month >12)

      {

          printf("\t月份输入错误!\n")

          continue

      }

      else if(day <1 || day >dayMonth(month))

      {

          printf("\t日期输入错误!\n")

          continue

      }

      else if(hour <0 || hour >23)

      {

          printf("\t小时输入错误!\n")

          continue

      }

      else if(minute <0 || minute >59)

      {

          printf("\t分钟输入错误!\n")

          continue

      }

      else if(second <0 || second >59)

      {

          printf("\t秒数输入错误!\n")

          continue

      }

      else

      {

          break

      }

  }

}

/*函数nextSecond()计算下一秒的时间*/

void nextSceond()

{

  if(59 == second)

  {

      minute += 1

      second = 0

      if(60 == minute)

      {

          hour += 1

          minute = 0

          if(24 == hour)

          {

              day += 1

              hour = 0

              if(day >dayMonth(month))

              {

                  month += 1

                  day = 1

                  if(13 == month)

                  {

                      year += 1

                      month = 1

                  }

              }

          }

      }

  }

  else

  {

      second += 1

  }

  printf("%d-%d-%d %d:%d:%d\n",year, month, day, hour, minute, second)

}

/*函数leapYear(int year)判断是否为闰年*/

int leapYear(int year)

{

  if(0 == (year % 4 &&0 != year % 100) || 0 == year % 400)

  {

      return 1

  }

  else

  {

      return 0

  }

}

/*函数名dayMonth(int month)返回每个月份对应的天数*/

int dayMonth(int month)

{

  switch(month)

  {

      case 1:

      case 3:

      case 5:

      case 7:

      case 8:

      case 10:

      case 12:

          return 31

      case 2:

          if(0 == (year % 4 &&0 != year % 100) || 0 == year %400)

          {

              return 29

          }

          else

          {

              return 28

          }

      case 4:

      case 6:

      case 9:

      case 11:

          return 30

  }

}

请放心使用

有问题的话请追问

满意请及时采纳,谢谢