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语言编写程序,输入某年某月,求该月的天数的主要内容,如果未能解决你的问题,请参考以下文章