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

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 }

 

以上是关于输入某年某月,判断该月有多少天,并判断是不是为闰年,谁会编这个程序的主要内容,如果未能解决你的问题,请参考以下文章

c++判断某年某月有多少天

万年历

Java实验项目二——打印某年某月日历

万年历

万年历

小小万年历