c语言编写程序,输入某年某月,求该月的天数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言编写程序,输入某年某月,求该月的天数相关的知识,希望对你有一定的参考价值。

c语言编写程序,输入某年某月,求该月的天数

#include<iostream.h>
void main()

  int Year,Month,Day;
  cout <<"Please enter the current date(年月以空格分隔):";
  cin >>Year>>Month;
  while(Month<=0 || Month>12 )
   
        cout<<"输入时间有误,请重新输入:";
     cin >>Year>>Month;
     
  switch(Month)
   
          case 4:
          case 6:
          case 8:
          case 9:
          case 11:
                 Day=30;
       break;
         case 2:
             if(Year%400 == 0 || Year%4==0 && nYear%100 != 0)
                 Day=29;
             else
                 Day=28;
      break;
   default: Day=31;
    
     cout <<"该月天数为:" << Day <<"天";
   

尊敬的审核人员,对于您说的排版不清晰问题做出解释:C语言编辑器的自动排版,不能完全左对齐。

参考技术A #include <stdio.h>
void main()

int year,month;
scanf("%d%d",&year,&month);
switch(month)

case 1:case 3:case 5:case 7:case 8:case 10:case 12:printf("31");break;
case 4:case 6:case 9:case 11:printf("30");break;
case 2:if((year%4==0&&year%100!=0)||year%400==0)printf("29");
else printf("28");break;
default:printf("error");

参考技术B #include<math.h>
#include<windows.h>
main()

int g;
g=1;
while(g==1)

int a,b,c,d,e,f,h,i,j,k,l;
printf("输入年份月份日期之间要加空格例如:2015 11 08\\n");
printf("不要输入不存在的日期哦\\n");
scanf("%d%d%d",&a,&b,&c);
d=a%4;    e=a%100;    f=a%400;
if(d==0&&e!=0)   h=1;
if(e==0&&f==0)   h=1;
if(b==1)  i=c;
else if(b==2)  i=31+c;
else if(b==3)  i=59+c;
else if(b==4)  i=90+c;
else if(b==5)  i=120+c;
else if(b==6)  i=151+c;
else if(b==7)  i=181+c;
else if(b==8)  i=212+c;
else if(b==9)  i=243+c;
else if(b==10)  i=273+c;
else if(b==11)  i=304+c;
else if(b==12)  i=334+c;
if(h==1&&b>2)  i=i+1;
printf("计算得这一天是%d年的第%d天\\n\\n\\n",a,i);



小小万年历

打印万年历(输入年份,月份,输出该月的日历,已知1900年1月1日是星期一),要求:

(1)编写一个方法判断闰年;

(2)编写一个方法判断某年某月有多少天;

(3)编写一个方法计算某年某月前距离1900年1月1日的总天数;(4)编写一个输出某年某月日历的方法;

(5)编写一个测试方法。

import java.util.*;
public class yearlist {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		paly();					
	}

	private static void paly() {
		// TODO Auto-generated method stub
		
		Scanner in=new Scanner(System.in);

		while(true)
		{
			System.out.println("1...判断闰年");
			System.out.println("2...判断某年某月有多少天");
			System.out.println("3...某年某月前距离1900年1月1日的总天数");
			System.out.println("4...输出某年某月日历");
			System.out.println("5...退出");
			int m;
			m=in.nextInt();
			switch(m)
			{
			case 1:
				int text;
				System.out.println("请输入年份...");
				int year=in.nextInt();
				text=testyear(year);
				if(text==1)
					System.out.println("yes");
				else
					System.out.println("no");
				break;
			case 2:
				int text1;
				System.out.println("请输入年...");
				int year1=in.nextInt();
				System.out.println("请输入月...");
				int month1=in.nextInt();
				text1=testmonth(year1,month1);
				System.out.println(text1);
				break;
			case 3:
				int text2;
				System.out.println("请输入年...");
				int year2=in.nextInt();
				System.out.println("请输入月...");
				int month2=in.nextInt();
				text2=calculate(year2,month2-1);
				System.out.println(text2);
				break;
			case 4:
				
				System.out.println("请输入年...");
				int year3=in.nextInt();
				System.out.println("请输入月...");
				int month3=in.nextInt();
				desplay(year3,month3);
				break;
			case 5:
				System.exit(0);
				break;

			}
		}
		
	}

	private static void desplay(int year,int month) {//万年历界面
		// TODO Auto-generated method stub
		int i,j,k=1;
		int day=calculate(year,month-1);
		int count,monday;
		count=testmonth(year,month);
		monday=day%7+1;
		System.out.println("一	二	三	四	五	六	日");
		for(i=1;i<=monday-1;i++)System.out.print(" 	");
		for(i=0;i<7;i++)
		{
			for(j=0;j<7;j++)
			
			{
				System.out.print(k+"	");
				
				if(8-monday==k||k==count)
				{k++;
					break;
				}
				k++;
			}
			System.out.println("");
			if(k>=count) break;
			
		}
	}

	private static int calculate(int year,int month) {//计算距离1900.01.01天数
		int i,j,count=0;
		for(i=1900;i<=year;i++)
		{
			for(j=1;j<=12;j++)
			{
				count=count+testmonth(i,j);	
				if(i==year&&j==month)
				break;

			}
		}
		return count;
		
		
	}

	private static int testmonth(int year,int month) {//计算当月天数
		// TODO Auto-generated method stub
		int x,y=0;
		x=testyear(year);
		switch(month)
		{
		case 1:
		case 3:
		case 5:
		case 7:
		case 8:
		case 10:
		case 12:
		 y=31;
		break;
		
		case 2:
				if(x==1)
					y=29;
				else
					y=28;
			break;
			
		case 4:
		case 6:
		case 9:
		case 11:
		y=30;
		break;
		}
		return y;
		
	}
	
		public static int testyear(int m) {//判断闰年
			// TODO Auto-generated method stub
			if(m%4==0&&m%100!=0||m%400==0)
				return 1;
			else 
				return 0;
			
		}

}

  

以上是关于c语言编写程序,输入某年某月,求该月的天数的主要内容,如果未能解决你的问题,请参考以下文章

输入某年某月,判断该月有多少天,并判断是不是为闰年,谁会编这个程序

ZZNUOJ_C语言1036:某年某月有多少天(完整代码)

万年历

万年历

万年历

小小万年历