输入某年某月,判断该月有多少天,并判断是不是为闰年,谁会编这个程序
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了输入某年某月,判断该月有多少天,并判断是不是为闰年,谁会编这个程序相关的知识,希望对你有一定的参考价值。
闰年判断、某年某月有多少天'这两个问题实际可以归结为一个问题,即求某年某月有多少天,调用下面仅 1 条语句的简单函数就可以实现:
'窗体添加控件 Command1、Command2 就可以查看 GetDays 的用法
Private Function GetDays(nYear As Long, nMonth As Long) As Long
GetDays = Day(DateSerial(nYear, nMonth + 1, 0))
End Function
'问题1,通过判断 2 月份是否有 29 天确定是否闰年
Private Sub Command1_Click()
Dim nYear As Long
nYear = Val(InputBox("请输入年分,例如:", "闰年判断", "2009"))
If nYear < 1 Then Exit Sub
If GetDays(nYear, 2) = 29 Then MsgBox nYear & " 闰年" Else MsgBox nYear & " 不闰年"
End Sub
'问题2,某年某月有多少天
Private Sub Command2_Click()
Dim nStr As String, nYear As Long, nMonth As Long, S As Long
nStr = InputBox("请输入年月,例如:", "某年某月有多少天", "2009-5")
If nStr = "" Then Exit Sub
S = InStr(nStr, "-")
nYear = Left(nStr, S - 1): nMonth = Val(Mid(nStr, S + 1))
S = GetDays(nYear, nMonth)
MsgBox nStr & ":有 " & S & " 天"
End Sub
Private Sub Form_Load()
Command1.Caption = "闰年": Command2.Caption = "天数"
End Sub 参考技术A 用什么语言? 参考技术B #include <stdio.h>
void main()
int year,leap;
scanf("%d",&year);
if(year%4==0)
if(year%100==0)
if(year%400==0)
leap=1;
else
leap=0;
else
leap=1;
else
leap=0;
if(leap)
printf("%d is",year);
else
printf("%d is not ",year);
printf("a leap year.\n");
万年历
打印万年历(输入年份,月份,输出该月的日历,已知1900年1月1日是星期一),要求:
(1)编写一个方法判断闰年;
(2)编写一个方法判断某年某月有多少天;
(3)编写一个方法计算某年某月前距离1900年1月1日的总天数;(4)编写一个输出某年某月日历的方法;
(5)编写一个测试方法。
1 import java.util.*; 2 public class 万年历 { 3 public static void main(String[] args){ 4 System.out.println("请输入年份"); 5 Scanner input=new Scanner(System.in); 6 int y=input.nextInt(); 7 System.out.println("请输入月份"); 8 int m=input.nextInt(); 9 if(runnian(y)==1){ 10 System.out.println(y+"是闰年"); 11 } 12 else{ 13 System.out.println(y+"不是是闰年"); 14 } 15 System.out.println(y+"年"+m+"月有"+panduanday(y,m)+"天"); 16 System.out.println("距离1900年1月1日有"+juli(y,m)+"天"); 17 System.out.println(y+"年"+m+"月的日历"); 18 rili(y,m); 19 } 20 public static int runnian(int y){ 21 if((y%4==0&&y%100!=0)||y%400==0) 22 { 23 return 1; 24 25 } 26 else 27 { 28 return 0; 29 30 } 31 } 32 public static int panduanmonth(int y,int m){ 33 if(m==1||m==3||m==5||m==7||m==8||m==10||m==12) 34 { 35 return 0; 36 } 37 if(m==4||m==6||m==9||m==11) 38 { 39 return 1; 40 } 41 else 42 { 43 if(runnian(y)==1){ 44 return 2; 45 } 46 else{ 47 return 3; 48 } 49 } 50 } 51 public static int panduanday(int y,int m){ 52 int day=0; 53 if(panduanmonth(y,m)==0) 54 { 55 day=31; 56 } 57 if(panduanmonth(y,m)==1) 58 { 59 day=30; 60 } 61 if(panduanmonth(y,m)==2) 62 { 63 day=29; 64 } 65 if(panduanmonth(y,m)==3) 66 { 67 day=28; 68 } 69 return day; 70 } 71 public static int juli(int y,int m){ 72 int a=0; 73 for(m=m-1;m>=1;m--){ 74 a=a+panduanday(y,m); 75 } 76 for(y=y-1;y>=1900;y--){ 77 if(runnian(y)==1) 78 { 79 a=a+366; 80 } 81 else{ 82 a=a+365; 83 } 84 } 85 return a; 86 87 88 } 89 public static void rili(int y,int m ){ 90 int a,c,i,j; 91 int b=1; 92 String weeks[]= { "日", "一", " 二", "三", " 四", " 五", " 六" }; 93 for(i=0;i<7;i++){ 94 System.out.print(weeks[i]+"\t"); 95 if(i==6){ 96 System.out.println(" "); 97 } 98 } 99 int day1[][]=null; 100 day1=new int[6][7]; 101 102 if(y<1900){ 103 System.out.println("不在查询范围之内"); 104 return; 105 } 106 a=juli(y,m)%7+1; 107 c=panduanday(y,m); 108 for(i=0;i<6;i++){ 109 for(j=0;j<7;j++){ 110 if(i==0&&j<a) 111 { 112 day1[i][j]=0; 113 } 114 if(i==0&&j>=a) 115 { 116 day1[i][j]=b; 117 b++; 118 } 119 if(i!=0) 120 { 121 day1[i][j]=b; 122 b++; 123 } 124 } 125 } 126 for(i=0;i<6;i++){ 127 for(j=0;j<7;j++){ 128 if(day1[i][j]>c||day1[i][j]==0) 129 { 130 System.out.print(" "+"\t"); 131 } 132 else{ 133 System.out.print(day1[i][j]+"\t"); 134 } 135 } 136 System.out.println(" "); 137 } 138 139 140 } 141 }
以上是关于输入某年某月,判断该月有多少天,并判断是不是为闰年,谁会编这个程序的主要内容,如果未能解决你的问题,请参考以下文章