编辑一个C语言程序:输入任意年月日,判断该天是这一年的第几天。

编辑一个C语言程序:输入任意年月日,判断该天是这一年的第几天。,第1张

int Ymd2Days(int year, int month, int date)

{

static int mdays[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30 };

int i, days = date;

for (i=0; i<month; ++i) days += mdays[i];

if (month>2) { // 闰年的三-十二月份天数加1

if (((year%400)==0) || ((year&3)==0 && (year%100))) ++days;

}

return days;

}

int main()

{

int y,m,d;

printf("---输入年,月,日:");

while (scanf("%d,%d,%d", &y, &m, &d)==3) {

printf("答: %d年%d月%d日是第%d天\n\n---输入年,月,日:", y, m, d, Ymd2Days(y,m,d));

}

return 0;

}

年月日数字用逗号隔开 想结束的时候输入一个0就可以了 例如:

---输入年,月,日:2008,1,31

答: 2008年1月31日是第31天

---输入年,月,日:2008,6,16

答: 2008年6月16日是第168天

---输入年,月,日:0

在窗体上添加3个文本框,一个按钮:

测试通过,符合楼主要求:

已修改成不对即清除,你可以在试一下

Private Sub Command1_Click()

Dim y%, m%, d%, t%, i%

Dim mon(1 To 12) As Integer

y = Val(Text1Text)

m = Val(Text2Text)

d = Val(Text3Text)

For i = 1 To 12

Select Case i

Case 1, 3, 5, 7, 8, 10, 12

mon(i) = 31

Case 4, 6, 9, 11

mon(i) = 30

Case 2

mon(i) = 28

End Select

Next i

If y Mod 400 = 0 Or y Mod 100 > 0 And y Mod 4 = 0 Then mon(2) = 29

If y <= 0 Then

MsgBox "年份错误!"

Text1Text = ""

Text1SetFocus

Exit Sub

End If

If m < 1 Or m > 12 Then

MsgBox "月份错误!"

Text2Text = ""

Text2SetFocus

Exit Sub

End If

If d <= 0 Or d > mon(m) Then

MsgBox "日期错误!"

Text3Text = ""

Text3SetFocus

Exit Sub

End If

For i = 1 To m - 1

t = t + mon(i)

Next i

t = t + d

Cls

Print y; "年"; m; "月"; d; "日是第"; t; "天"

End Sub

以上就是关于编辑一个C语言程序:输入任意年月日,判断该天是这一年的第几天。全部的内容,包括:编辑一个C语言程序:输入任意年月日,判断该天是这一年的第几天。、设计一个应用程序,输入年、月、日,判断该日为这一年的第多少天 vb、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9871637.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-02
下一篇2023-05-02

发表评论

登录后才能评论

评论列表(0条)

    保存