2.2打印日历实现输出某年某月

//打印日历实现输出某年某月
#include<iostream>
#include<iomanip>
#include<string>
using namespace std;
//判断平闰年
int doyear(int year)
{
if((year%4==0)&&(year%100!=0)||(year%400==0))
return 1;
else
return 0;
}
//判断某年的第一天是星期几
int doweek(int year)
{
 int days=(year-1)*365+(year-1)/4-(year-100)/100+(year-1)/400;
 return days%7;
 }
 //打印星期
 void printweek()
 {
 int i;//计数
 string week[7]={"Sun","Mon","Tue","Wed","Thu","Fri","Sat"};
 for(i=0;i<7;i++)
 cout<<setw(5)<<week[i];
 cout<<endl;
 }
 //打印月份
 void printmonth(int m)
 {
 //int i;
 string month[12]={"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dev"};
 //for(i=0;i<12;i++)
 //if(m=i+1)
 cout<<setw(5)<<month[m-1];
 cout<<endl;
 }
 //打印日历
 void printall(int year,int month)
 {
 int i,d;
 int monthday[12]={31,28,31,30,31,30,31,31,30,31,30,31};
 if(doyear(year))
 monthday[1]=29;
 int sum=0;
 for(i=0;i<month-1;i++)
 sum+=monthday[i];
 int weekday=((doweek(year)+sum)%7);
 cout<<setw(5)<<year<<" "<<month<<"月"<<endl<<endl;
 cout<<setw(5)<<"Calendar";
 cout<<setw(20)<<year<<"-"<<month<<endl;
 for(i=1;i<=5*7;i++)
 cout<<"*";
 cout<<endl;
 printmonth(month);
 printweek();
 for(d=1;d<=monthday[month-1];d++)
 {
 if(d==1){
 for(i=1;i<=weekday;i++)
 cout<<setw(5)<<" ";
 cout<<setw(5)<<d;
 }
 else
	 cout<<setw(5)<<d;
 if((weekday+d-1)%7==6)
 cout<<endl;
 }
 }
 //主函数
 int main()
 {
    int year,month;
	cout<<"please input which year do you want"<<endl;
	cin>>year;
	cout<<"please input which month do you want"<<endl;
	cin>>month;
    printall(year,month);
	cout<<endl;
	return 0;
}

  

时间: 2024-10-17 13:16:22

2.2打印日历实现输出某年某月的相关文章

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

Program:打印万年历(输入年份,月份,输出该月的日历,已知1900年1月1日是星期一), 要 求: (1)编写一个方法判断闰年: (2)编写一个方法判断某年某月有多少天: (3)编写一个方法计算某年某月前距离1900年1月1日的总天数:(4)编写一个输出某年某月日历的方法: (5)编写一个测试方法. Description:该项目由多个类实现,最后类为main方法的调用.代码如下: 1 /* 2 *Description:定义工具类 3 * 4 * */ 5 6 package tools

【Java自学】 打印日历信息

1 package codeTask_FangFa; 2 // 5.34 使用zeller公式,打印某年某月的日历信息. 3 import java.util.Scanner; 4 public class PrintRiLi { 5 public static void main(String[] args){ 6 Scanner input = new Scanner(System.in); 7 System.out.println("请输入需要打印日历的年份:"); 8 int

(c语法百题17)打印某年某月有几天

知识点: 逻辑表达式的灵活运用 法1: switch()的用法,注意字符用  case 'a': ……;break;  数字用 case 6:……;break; 不要忘了break: 法2: if……else 的用法 注意是否是闰年的算法 内容: 打印某年某月有几天 输入说明: 一行两个整数,前面是年份 后面是月份 输出说明: 一个整数 输入样例: 2009 6 输出样例 : 30 法1: #include <stdio.h> int main() { int y,m; scanf("

Python实战练习——打印日历教程

很长一段时间没有接触过C语言了,想来做这一行当已经有三两年了. 今天突然想起来以前用C语言在VC6上写代码的日子,想了想以前的一些实战练习. 所以今天打算用Python来写一个C语言以前练习的题目-日历打印器,并根据情况进行优化. 效果如上图所示 算法思路: 首先,关于日历的相关操作都离不开一个根本情况,1990年的1月1日是周一,所以日历的打印需要基于这一事实 想要打印日历需要解决的问题最主要便是一个——那就是本月1号是周几? 在没有更好的算法之前,最好用的方式就是根据接收的年月去累加,然后除

JS打印和报表输出

JS打印和报表输出2008-07-15 22:16一打印: 转自:http://hi.baidu.com/afei0211/blog/item/20523955ca8bebc2b745ae98.html (1) 在实际应用中!特别是一些公司需要报表输出和打印!这个时候我们就会用到JS的打印和报表输出功能!当然打印很简单就是window.print();你也可以在按钮的onclick事件中写上return print()可以实现打印效果!这个时候打印你会发现打印出来的是整个页面,包裹着网站的log

java打印日历方法

package cn.baokx.test; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; public class Test { public static void main(String ... args) { String dat

自写打印日历类

在论坛上看到有人在问打印日历的程序,今天下午空闲的时候写了一个日历类,简单的写了几个方法. calendar.h #include <string> using namespace std; #ifndef CALENDAR_H #define CALENDAR_H class Calendar{ public: Calendar(){} void printAllMonth(const int &year); void printOneMonth(const int &yea

使用java 打印日历

package hangshu; /* * 打印从1900年到2.year年的日历 */ import java.util.Scanner; public class Calender { public static int year = Integer.MIN_VALUE; public static int month = Integer.MIN_VALUE; private static int[] m = {31,28,31,30,31,30,31,31,30,31,30,31}; pu

Python全栈__服务器与多客户端通信、UDP协议、pycharm打印带颜色输出、时间同步的机制

1.服务器与多客户端通信 1 import socket 2 # 创建tcp socket的套接字 3 sk = socket.socket() 4 # bind 5 sk.bind(('127.0.0.1',8080)) 6 # 监听 7 sk.listen(5) 8 # 等待连接 9 while 1: 10 conn, addr = sk.accept() 11 while 1: 12 msg_s = input('>>>') 13 conn.send(msg_s.encode('u