C 万年历 阳历版

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void display(int x,int y,int m,int max)
{
int s[6][7]={0};int i=0,j=0;
  s[0][m]=1;//确定每一月的根基 每个月的第一列 
for(j=m;j<7;j++)s[0][j]=(j-m)+s[0][m];
s[1][0]=s[0][6]+1;
for(i=2;i<6;i++)s[i][0]=s[1][0]+(i-1)*7;
  for(i=1;i<6;i++)
  { for(j=1;j<7;j++)
     s[i][j]=s[i][0]+j;
  }

printf("\t%d年  %d月\n",x,y);
printf("----------------------\n");
printf(" 日 一 二 三 四 五 六 \n");
for(i=0;i<6;i++)
  { for(j=0;j<7;j++)
    {
   if(s[i][j]==0)printf("   ");
   if(s[i][j]!=0&&s[i][j]<=max)printf("%3d",s[i][j]);}
   printf("\n");  
  }
}
int Year(int year)
{
if(year%4==0&&year%100!=0||year%400==0)return 1;
else return 0;
}
   
void  fun()
{
int i,j;
int max[13]={0,30,31,32,33,30,30,30,30,30,30,30,30};
int star[13]={1,2,3,4,5,5,1,6,5,4,3,2,1,};
int x[42]={0};
for(i=1;i<=12;i++)
  {printf("%d year %d math\n",2015,i);
   printf(" 7  1  2  3  4  5  6 \n");
   printf("---------------------\n" );
    for(j=star[i];j<42;j++)
   {    x[j]=x[j-1]+1;}
    for(j=0;j<42;j++)
   { 
     if(j>0&&j%7==0)printf("\n");
     if(x[j]==0)printf("   ");   
     if(x[j]!=0&&x[j]<max[i])printf("%3d",x[j]);
   }
  printf("-----happy new year---\n");
  }
}
void main()
{
int max[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int year=2016;
int month=2;//1-12
int star[13]={0,1,32,60,91,121,152,182,213,244,274,304,334};//0-6 
 
int i=1;
int count=0;
if(Year(year)) {max[2]++;for(i=3;i<=12;i++)star[i]++;}
for(i=1;i<year;i++)
{if(Year(i))count++;}
for(i=1;i<=12;i++)
 {//star[i]= (1+2*i+3*(i+1)/5+year+year/4-year/100+year/400)%7;
  star[i]=(star[i]+(year-1)*365+count)%7;
 display(year,i,star[i],max[i]); 
 }
//fun();
}

fun为一维打印 并传参准备变少  函数year有多扇出利用

时间: 2024-11-06 22:45:13

C 万年历 阳历版的相关文章

日梭万年历网络版

最近看了一个万年历,也是网络版的,叫日梭万年历,包括各地区.县的经纬度,日出日落时间,太阳照射角度与方位等信息,以及年月日时的干支表示法,相对来说信息量还是比较丰富的,先看看效果图: 在下面给出HTML代码,你可以直接保存为.html的文本文件,双击可打开 <!-- saved from url=(0018)http://www.agr.cn/ --> <HTML><HEAD><TITLE>日梭万年历网络版</TITLE> <META co

javascript版万年历

1 <!DOCTYPE html PUBLIC "-//W3C//Dtd XHTML 1.0 transitional//EN" "http://www.w3.org/tr/xhtml1/Dtd/xhtml1-transitional.dtd"> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <meta http-equiv="

JAVA线程万年历(阳历+阴历+节日+时间)

JAVA线程万年历(阳历+阴历+节日+时间) package myCalendar; import java.awt.Canvas; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.text.SimpleDateFormat; import java.util.Calendar; class Clock extends Canvas implements Runnable{ /*

初识C语言控制台版万年历

任务:使用C完成控制台版万年历 从控制台输入年份和月份,然后显示该月日历. 使用分支和循环结构完成. 提示: 1.1900年1月1日是星期一 2.计算输入的月份的1月1日距离1900年1月1日有多少天 3.输入月份的1月1日是星期几 = 得到的总天数 % 7 4.然后根据下图可以看出,该月的1号是星期几,我们在控制台上,就需要在前面打印几个\t控制符,比如2016年10月1日是星期六,那么前面我们就需要六个\t来制造空格空出来. 具体的实现步骤如下: 1.接收控制台输入的年份和月份 2 . 计算

万年历(C语言版)

#include <stdio.h> //判断输入的年份是否是闰年 int IsLeap(int year) { if((year%400==0) || ((year%4==0)&&(year%100!=0))) return 1; else return 0; } int Day[12]={31,28,31,30,31,30,31,31,30,31,30,31}; //计算一个月的最大天数(上一个月) int Max_day(int year,int month) { if(

软媒魔方 6.0 正式绿色版

软媒魔方 6.0 正式 绿色版 历经Vista优化大师.Win7优化大师发展而来,软媒魔方6全面完美支持64位和32位的所有主流Windows系统,从最早的一款优化大师发展为一款最好的系统超级增强套装,自动化.智能化解决各种电脑问题.软媒魔方内置20余款强大.绿色化的知名组件,清理.美化.桌面增强.系统雷达.通知区万年历.优化加速.安全守护.软件管家.电脑医生.虚拟光驱.U盘装机等等,软媒魔方一直被誉为国内口碑最好最全能的系统软件产品集,没有之一. 魔方 6.0 正式版: 全新一代,软媒魔方6.

PHP世纪万年历

<?  //世纪万年历  #这是唯一的设置-请输入php文件的位置  $file="http://192.168.1.168/php/rl/s2m.php";  //#农历每月的天数  $everymonth=array(  0=>array(8,0,0,0,0,0,0,0,0,0,0,0,29,30,7,1),  1=>array(0,29,30,29,29,30,29,30,29,30,30,30,29,0,8,2),  2=>array(0,30,29,3

万年历程序例题(农历阴历转换)

万年历(农历阴历转换) package com.java; import java.util.Calendar; public class LunarCalendar { public static void main(String[] args) { Solar s = new Solar(); s.getDate(2020, 9); String t = MutualConversion.solarToLundar(2009, 10, 12); String[] str = t.split(

c#实现万年历示例分享 万年历农历查询

cs.cs(类页面) using System;using System.Collections.Generic;using System.Linq;using System.Web; namespace CityIndex{ #region ChineseCalendarException /// <summary> /// 中国日历异常处理 /// </summary> public class ChineseCalendarException : System.Excepti