输出结果不对,求大神帮我找一下bug

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// 打印1993年到2018年每月12月7日是星期几
for (int year = 1993; year <= 2018; year++)
{
Console.WriteLine(year + "年的生日是星期:" + GetDayOfWeek(year, 12, 7));
}
Console.WriteLine();
// 打印用户输出的年份每个月的日历

int inputYear = GetUserInputYear();
for (int i = 1; i <= 12; i++)
{
Console.WriteLine(inputYear + "年" + i + "月");
PrintCalendar(inputYear, i, 1);
Console.WriteLine();
}
// 打印用户输入的年,月份日历
while (true)
{
int year2 = GetUserInputYear();
int month2 = GetUserInputMonth();
PrintCalendar(year2, month2, 1);
Console.WriteLine();
Console.Write("按回车键继续,退出输入Y后按回车键:");
if (Console.ReadLine() == "Y")
{
break;
}
Console.Clear();
}

Console.ReadLine();
}
#region 判断是不是闰年

static bool IsLead(int year)
{
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
{
return true;
}
return false;
}
#endregion

#region 从1900年至year-1年的天数
static int GetDayOfYear(int year)
{
int dayOfYear = 0;
for (int i = 1900; i < year; i++)
{
if (IsLead(year))
{
dayOfYear += 366;
}
else
{
dayOfYear += 365;
}
}
return dayOfYear;
}
#endregion

#region year年1月至month-1月的天数

static int GetDayOfMonth(int year, int month)
{
int getDayOfMonth = 0;
for (int i = 1; i < month; i++)
{
if(i == 2)
{
if (IsLead(year))
{
getDayOfMonth += 29;
}
else
{
getDayOfMonth += 28;
}
}
else if (i <= 7 && i % 2 != 0 || i > 7 && i % 2 == 0)
{
getDayOfMonth += 31;
}
else
{
getDayOfMonth += 30;
}
} return getDayOfMonth;

}
#endregion

#region 计算今天是该年的第几天

static int GetDayOfOneYear(int year,int month,int day)
{
return GetDayOfMonth(year, month) + day;
}
#endregion

#region 计算1900年1月日至现在一共经过了多少天
static int GetDayOfAll(int year, int month, int day)
{
return GetDayOfYear(year) + GetDayOfOneYear(year, month, day) - 1;
}
#endregion

#region 计算今天是今年的星期几
static int GetDayOfWeek(int year, int month, int day)
{
return GetDayOfAll(year,month,day) % 7 + 1;
}
#endregion

#region 判断month月有多少天
static int GetDayOfOneMonth(int year,int month)
{
int days;
if(month == 2)
{
if(IsLead(year))
{
days = 29;
}
else
{
days = 28;
}
}
else if(month <= 7 && month % 2 != 0 || month % 400 == 0)
{
days = 31;
}
else
{
days = 30;
}
return days;
}
#endregion

#region 用户输入的年份
/// <summary>
/// 得到用户输入的年份
/// </summary>
/// <returns></returns>
static int GetUserInputYear()
{
int year;
while (true)
{
Console.Write("请输入年份(1900-2100):");
year = int.Parse(Console.ReadLine());
if (year >= 1900 && year <= 2100)
{
break;
}
}
return year;
}
#endregion

#region 用户输入的月份
static int GetUserInputMonth()
{
int month;
while (true)
{
Console.Write("请输入月份(1-12):");
month = int.Parse(Console.ReadLine());
if (month > 0 && month <= 12)
{
break;
}
}
return month;
}
#endregion

#region 控制台日历
/// <summary>
/// 打印一个日历
/// </summary>
/// <param name="year"></param>
/// <param name="month"></param>
static void PrintCalendar(int year, int month, int day)
{
List<string> nums = new List<string>();
int dayOfWeek = GetDayOfWeek(year, month, day);
int space = dayOfWeek - 1;
for (int i = 0; i < space; i++)
{
nums.Add("");
}
// 算天数,把字符串凑齐
int days = GetDayOfOneMonth(year, month);
for (int i = 1; i <= days; i++)
{
nums.Add(i.ToString());
}
Console.Write("一\t二\t三\t四\t五\t六\t日");
for (int i = 0; i < nums.Count; i++)
{
Console.Write(nums[i] + "\t");
if (i % 7 == 0)
{
Console.WriteLine();
}
}
}
#endregion
}
}

原文地址:https://www.cnblogs.com/smuwgeg/p/9463914.html

时间: 2024-10-30 01:00:26

输出结果不对,求大神帮我找一下bug的相关文章

求大神帮我解决下webuploader另外添加参数的问题,我知道是formData添加额外参数给后台

如图所示: 我点击开始上传的时候.会有3个请求,等于是他会返回我3次action,我在后台添加了额外的2个参数dkName,Moneys. 求大神可以帮我看看如何改写下:我需要他每一个请求只会带上图下当前的点卡名称和点卡金额,如果有大神大牛乐意帮助下我,可以加我QQ79612086或者在下面回复,我会及时收看,谢谢!!

求大神帮解答javaEE这个问题,谢谢了

List<Privilege> privilegeList = privilegeService.findAll(); ActionContext.getContext().put("privilegeList", privilegeList); <s:checkboxlist name="privilegeIds" list="#privilegeList" listKey="id" listValue=&

VS 中的一个BUG?求大神帮我解答下。

首先,希望知道这个问题的人能够帮我解答下. 来看代码: int main() { long long int result=-321; cout<<result<<endl; if(INT_MIN==-2147483648) cout<<"相等"<<endl; if( result<-2147483648) cout<<"1"<<endl; if( result<INT_MIN) c

spring boot 错误,求大神帮解决

Exception in thread "main" java.lang.IllegalStateException: Failed to read Class-Path attribute from manifest of jar file:/C:/Users/wo/.m2/repository/com/amazonaws/aws-java-sdk-core/1.11.125/aws-java-sdk-core-1.11.125.jar    at org.springframewo

求大神帮我看下代码哪里出错了!

abowin辽识赜幻妥浅<http://weibo.com/p/230927983039414789738496?=q> y6l7n6型古反涌诨豪<http://weibo.com/qSIp/230927982943232830742528> pqx8qr自际辽澜燃率<http://weibo.com/p/230927983116343119187968?=U> yfzueg牟乩拱氐挡赴<http://weibo.com/p088p688p/23092798312

求大神帮我看看我的程序哪里错了

2owlfz勤沽斯眉郊瘸<http://weibo.com/FDuoEQyp/230927983067401178320896> l6uo43信谈炎缘猛睬<http://weibo.com/p20180413Pp/230927982988153436512256> 2k88f0蛋诜渭郴耗寄<http://weibo.com/Vxnyap/230927983155096823013376> j0iv8a炊毒菩褪胤布<http://weibo.com/20180413

hdu 1008为何不对?求大神指导!

/*#include<iostream> using namespace std; int main(){ int n; while (cin >> n){ if (n == 0) break; else if (n > 0 && n < 100){ int sum=0, max,min; int *f = new int[n]; for (int i = 0; i < n; i++) cin >> f[i]; max = min =

无法运行的贪吃蛇游戏代码,求大神帮忙修改!

#include <iostream> #include <windows.h> #include <stdlib.h> #include <conio.h> #include <time.h> //使用当前时间做种子 enum dir {up,down,left,right}; //枚举类型enum dir //围墙 class Fence { public: void initFence(); void OutputF(); public:

屡败屡战,还是赢不了。求大神告诉我哪里错了

求大神告诉我哪里错了 奇偶数分离 时间限制:3000 ms  |  内存限制:65535 KB 难度:1 描述 有一个整型偶数n(2<= n <=10000),你要做的是:先把1到n中的所有奇数从小到大输出,再把所有的偶数从小到大输出. 输入 第一行有一个整数i(2<=i<30)表示有 i 组测试数据:每组有一个整型偶数n. 输出 第一行输出所有的奇数第二行输出所有的偶数 #include<stdio.h>#include<stdlib.h>int main