如何用java编写带时钟的万年历代码,万年历要有阴历算法?C语言万年历代码
本文目录
- 如何用java编写带时钟的万年历代码,万年历要有阴历算法
- C语言万年历代码
- JAVA万年历代码
- 求一个java swing带界面的万年历代码
- 对于一个大一计科新生,有什么代码行数在500~1000的程序(C语言)可以试着写来练手
如何用java编写带时钟的万年历代码,万年历要有阴历算法
如图:
来源:http://www.javaeye.com/topic/735220
如调试不成功,我把源码发你信箱里
import java.io.*; class putout{ public void putout(int f,int x,int y){ int i; int a; System.out.println(" 日 一 二 三 四 五 六 "+" "+f+"月"); for (i=0;i《x;i++) for(i=x;i《x+y;i++) a=i-x+1; for(i=x;i《x+y;i++) { if ((i%7==0)&&(i》0)) System.out.print("\n"); if (a《10) System.out.print(" "+a); else System.out.print(" "+a); } System.out.println("\n"); } } class st{ public static void main(String args)throws IOException{ putout p=new putout(); int year,mouth,y=1,t,i; InputStreamReader ir; BufferedReader in; ir=new InputStreamReader(System.in); in=new BufferedReader(ir); System.out.print("请输入一个年份:"); String s=in.readLine(); year=Integer.parseInt(s); if((year%4==0 && year%100!=0)||(year%400==0)) mouth=1; else mouth=0; y=year; for(i=1;i《year;i++) {if((i%4==0 && i%100!=0)||(i%400==0)) y++;} y=y%7; for(i=1;i《13;i++){ switch(i){ case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9: case 10: case 11: case 12: } } } }
C语言万年历代码
#include"stdio.h" #include"stdlib.h"main( ) { int Year,Month; //年、月 int FirstDay_Year,FirstDay_Month; //某年的第一天是星期几,某年某月的第一天是星期几(范围是0~6,其中0代表星期日) int IsLeapYear; //是否为闰年,0表示不是闰年,1表示是闰年 int i,d,y; //临时变量 char YN; //Yes No,程序是否要继续 int Days={0,31,28,31,30,31,30,31,31,30,31,30,31}; //Days存储每个月有多少天,其中二月的天数是可变的(闰年29天,平年28天),这里初始化为28天 printf(" C语言简单万年历\n"); //打印标题XunHuan: //循环标号(可以通过goto跳转到这里) printf("请输入年份《0000~9999》: "); //提示输入年份(0~9999) scanf("%d",&Year); //把输入的年份赋值给变量Year printf("请输入月份《0~12》: "); //提示输入月份(1~12) scanf("%d",&Month); //把输入的月份赋值给变量Month y=Year; FirstDay_Year=5*(y/4)+(y%4)-(y/100)+(y/400);//蔡勒公式(计算某年的第一天是星期几) IsLeapYear=(y%4==4&&y%100!=100||y%400==0)?1:0; //判断是否为闰年 Days=(IsLeapYear==1)?29:28; //闰年二月29天,非闰年二月28天 for(i=1,d=0;i《Month;i++) d=d+Days; FirstDay_Month=(d+FirstDay_Year)%7; //当月的第一天是星期几(0代表星期日) printf("\n****************************************************\n"); printf("\t\t公元 %d 年 %2d 月",Year,Month); //打印年月 printf("\n****************************************************\n"); printf(" 星期日 星期一 星期二 星期三 星期四 星期五 星期六\n"); //打印星期表头 for(i=0;i《FirstDay_Month;i++) printf("%7c",’ ’); //当某月的第一天不是星期日时打印空格占位 for(d=1;d《=Days;d++) //循环,从每个月的第一天开始打印 { printf("%7d",d); if(((d+FirstDay_Month)%7)==0 && d《Days) printf("\n"); //当输出了星期六而且还未输出所有天数时,换行 } printf("\n****************************************************\n"); printf("\n"); printf("是否继续(Y/N)?\n"); scanf("%c",&YN); scanf("%c",&YN); if(YN==’Y’ || YN==’y’) goto XunHuan;}
JAVA万年历代码
/*题目:输出任意年份任意月份的日历表(公元后)思路: 1.已知1年1月1日是星期日,1 % 7 = 1 对应的是星期日,2 % 7 = 2 对应的是星期一,以此类推; 2.计算当年以前所有天数+当年当月1号之前所有天数; a.年份分平年闰年,平年365天,闰年366天; b.闰年的判断方法year % 400 == 0 || (year % 100 != 0 && year % 4 == 0)若为真,则为闰年否则为平年; c.定义平年/闰年数组,包含各月天数; d.遍历数组求和,计算当年当月前总天数; e.当年以前所有天数+当年当月前总天数+1即为1年1月1日到当年当月1日的总天数; 3.总天数对7取模,根据结果判断当月1号是星期几,输出空白区域; 4.输出当月日历表,逢星期六换行*/import java.util.Scanner;class FindMonthList { public static void main(String args){ Scanner sc = new Scanner(System.in); System.out.println("请输入年份:"); int year = sc.nextInt(); //年份 if (year 《 1) { //判断非法输入年份 System.out.println("输入错误!"); return; } System.out.println("请输入月份:"); int month = sc.nextInt(); //月份 if (month 《 1 || month 》 12) { //判断非法输入月份 System.out.println("输入错误!"); return; } //输出表头 System.out.println("-------" + year + " 年 " + month + " 月 " + "-------"); System.out.println(); System.out.println("日 一 二 三 四 五 六"); //计算当前年份以前所有天数beforeYearTotalDay;每4年一个闰年,闰年366天,平年365天 int beforeYearTotalDay = ((year - 1) / 4 * 366) + (year-1 - ((year - 1) / 4)) * 365; int arrLeapYear = {0,31,29,31,30,31,30,31,31,30,31,30,31}; //闰年各月天数 int数组 int arrNormalYear = {0,31,28,31,30,31,30,31,31,30,31,30,31}; //平年各月天数 int数组 int beforeMonthTotalDay = 0; //定义本年当月之前月份的总天数 if (year % 400 == 0 || (year % 100 != 0 && year % 4 == 0)) { //判断当前年份是否是闰年 for (int i = 0 ; i 《 month ; i ++ ) { //for循环计算当月之前总天数 //计算当前月份之前的所有天数 beforeMonthTotalDay = beforeMonthTotalDay + arrLeapYear; } //判断当月1日是星期几 int totalDay = beforeYearTotalDay + beforeMonthTotalDay + 1; int week = totalDay % 7;//已知1年1月1日是星期日,即模7得1对应的是星期日 for (int i = 0 ; i 《 (week - 1 + 7) % 7 ; i ++) { //如果写成i 《 (week-1)会出现i《-1的情况 System.out.print(" ");//输出开头空白 } for (int i = 1 ;i 《= arrLeapYear ;i ++ ) { //for循环输出各月天数 System.out.print(i + " "); if (i 《 10 ) { //小于10的数补一个空格,以便打印整齐 System.out.print(" "); } if (i % 7 == ((7-(week - 1)) % 7 ) || i == arrLeapYear) {//每逢星期六/尾数换行 System.out.println(); } } } else { //不是闰年就是平年 for (int i = 0 ; i 《 month ; i ++ ) { //for循环计算出当月之前月份总天数 beforeMonthTotalDay = beforeMonthTotalDay + arrNormalYear; } //判断当月1日是星期几 int totalDay = beforeYearTotalDay + beforeMonthTotalDay + 1; int week = totalDay % 7;//已知1年1月1日是星期日,即模7得1对应的是星期日 for (int i = 0 ; i 《 (week - 1 + 7) % 7 ; i ++) { //如果写成i 《 (week-1)会出现i《-1的情况 System.out.print(" ");//输出开头空白 } for (int i = 1 ;i 《= arrNormalYear ;i ++ ) {//for循环输出各月天数 System.out.print(i + " "); if (i 《 10 ) { //小于10的数补一个空格,以便打印整齐 System.out.print(" "); } if (i % 7 == ((7-(week - 1)) % 7 ) || i == arrNormalYear) {//每逢星期六/尾数换行 System.out.println(); } } } }}
显示效果:
求一个java swing带界面的万年历代码
按照你的要求编写的Java swing 带界面的万年历代码如下
//日历import java.awt.BorderLayout;import java.awt.Color;import java.awt.Font;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.Calendar;import javax.swing.BorderFactory;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;public class CCI extends JFrame implements ActionListener{ JButton jb1=new JButton("《《"); JButton jb2=new JButton("《"); JButton jb3=new JButton("》"); JButton jb4=new JButton("》》"); JPanel jp1=new JPanel(); JPanel jp2=new JPanel(); JPanel jp3=new JPanel(); JPanel jp4=new JPanel(); JLabel jl1=new JLabel(); JLabel jl2=new JLabel(); JLabel; String week={"Sun","Mon","Tue","Wed","Thu","Fri","Sat"}; Calendar c=Calendar.getInstance(); int year,month,day; int nowyear,nowmonth,nowday; CCI(){ super("简单日历"); nowyear=c.get(Calendar.YEAR); nowmonth=c.get(Calendar.MONTH)+1; nowday=c.get(Calendar.DAY_OF_MONTH); year=nowyear; month=nowmonth; day=nowday; String s=year+"年"+month+"月"; jl1.setForeground(Color.RED); jl1.setFont(new Font(null,Font.BOLD,20)); jl1.setText(s); jb1.addActionListener(this); jb2.addActionListener(this); jb3.addActionListener(this); jb4.addActionListener(this); jp1.add(jb1);jp1.add(jb2);jp1.add(jl1);jp1.add(jb3);jp1.add(jb4); jp2.setLayout(null); createMonthPanel(); jp2.add(jp3); jl2.setFont(new Font(null,Font.BOLD,20)); jl2.setText("今天是"+nowyear+"年"+nowmonth+"月"+nowday+"日"); jp4.add(jl2); add(jp1,BorderLayout.NORTH); add(jp2,BorderLayout.CENTER); add(jp4,BorderLayout.SOUTH); setSize(500,500); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLocationRelativeTo(null); setVisible(true); } @Override public void actionPerformed(ActionEvent ae) { if(ae.getSource()==jb1){ year=year-1; String s=year+"年"+month+"月"; jl1.setText(s); jp3.removeAll(); createMonthPanel(); jp3.validate(); } if(ae.getSource()==jb2){ if(month==1){ year=year-1; month=12; }else{ month=month-1; } String s=year+"年"+month+"月"; jl1.setText(s); jp3.removeAll(); createMonthPanel(); jp3.validate(); } if(ae.getSource()==jb3){ if(month==12){ year=year+1; month=1; }else{ month=month+1; } String s=year+"年"+month+"月"; jl1.setText(s); jp3.removeAll(); createMonthPanel(); jp3.validate(); } if(ae.getSource()==jb4){ year=year+1; String s=year+"年"+month+"月"; jl1.setText(s); jp3.removeAll(); createMonthPanel(); jp3.validate(); } } public static void main(String args) { new CCI(); } public int getMonthDays(int year, int month) { switch (month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: return 31; case 2: if ((year%4==0&&year%100!=0)||year%400==0) { return 29; } else { return 28; } default: return 30; } } public void createMonthPanel(){ c.set(year, month-1, getMonthDays(year,month)); int weekOfMonth=c.get(Calendar.WEEK_OF_MONTH); if(weekOfMonth==6){ jp3.setLayout(new GridLayout(7,7)); jp3.setBounds(50, 20, 420, 350); }else{ jp3.setLayout(new GridLayout(6,7)); jp3.setBounds(50, 20, 420, 300); } jp3.setBorder(BorderFactory.createEtchedBorder()); for(int i=0;i《7;i++){ jl,JLabel.CENTER); jl.setFont(new Font(null,Font.BOLD,20)); jl.setBorder(BorderFactory.createEtchedBorder()); jp3.add(jl); } c.set(year, month-1, 1); int emptyFirst=c.get(Calendar.DAY_OF_WEEK)-1; int daysOfMonth=getMonthDays(year,month); for(int i=6+emptyFirst;i》=7;i--){ int intyear=year; int intmonth=month; if(intmonth==1){ intyear=intyear-1; intmonth=12; }else{ intmonth=intmonth-1; } int intdays=getMonthDays(intyear,intmonth); jl=new JLabel((intdays+7-i)+"",JLabel.CENTER); jl.setFont(new Font(null,Font.BOLD,20)); jl.setForeground(Color.GRAY); jl.setBorder(BorderFactory.createEtchedBorder()); jp3.add(jl); } for(int i=7+emptyFirst;i《daysOfMonth+7+emptyFirst;i++){ jl=new JLabel((i-7-emptyFirst+1)+"",JLabel.CENTER); jl.setFont(new Font(null,Font.BOLD,20)); if((i+1)%7==0 || (i+1)%7==1){ jl.setForeground(Color.RED); }else if((i-7-emptyFirst+1)==nowday&&month==nowmonth&&year==nowyear) jl.setForeground(Color.BLUE); else jl.setForeground(Color.BLACK); jl.setBorder(BorderFactory.createEtchedBorder()); jp3.add(jl); } if(weekOfMonth==6) for(int i=48;i》=daysOfMonth+emptyFirst+7;i--){ jl=new JLabel((49-i)+"",JLabel.CENTER); jl.setFont(new Font(null,Font.BOLD,20)); jl.setForeground(Color.GRAY); jl.setBorder(BorderFactory.createEtchedBorder()); jp3.add(jl); } else for(int i=41;i》=daysOfMonth+emptyFirst+7;i--){ jl=new JLabel((42-i)+"",JLabel.CENTER); jl.setFont(new Font(null,Font.BOLD,20)); jl.setForeground(Color.GRAY); jl.setBorder(BorderFactory.createEtchedBorder()); jp3.add(jl); } }}
对于一个大一计科新生,有什么代码行数在500~1000的程序(C语言)可以试着写来练手
首先要明确一个思想:面向职业编程。
计算机专业的学生,毕业后多半到银行、互联网这些企业工作。从工作内容上看,编程主要分算法、应用两大类,应用还分服务端、web前端、app客户端、大数据这几类。
新人编程入门,建议先熟悉算法和原理,就是从数据结构出发,编写相应的算法程序,行数也一般在500-1000行以内。
掌握一定编程思想之后,可以尝试python进行数据分析,编写相关大数据的分析程序,这样可以进一步了解编程的应用。
然后可以学一下java、html、js、css、数据库,进行web开发,编写一个博客系统。
只有经历过算法、应用、数据分析这几类编程之后,才能清楚自己更适合做哪一方面,从而制定更清晰的职业规划,选定一类深入学习和研究。
最后说一下语言。现在的教育方式和十几年前一样,大一新生接触的第一门语言都是C语言,但现在IT技术发展很快,单纯一种语言难以支撑庞大的产业应用,因此作为计算机专业的程序员,重点是打好基础、熟悉编程思想、掌握学习方法,只有这样才能应对后续新技术的发展。
更多文章:
索尼爱立信j108i主题(索尼爱立信 J108i的免费主题哪里下载)
2024年11月11日 13:25
三星i9060怎么恢复出厂设置?三星i9060怎么用USB连接电脑
2023年4月29日 03:15
空调显示e6问题大不大(空调显示e6问题大不大维修费是多少)
2023年7月20日 06:30
三星note2卡刷机包(三星note2手机哪里有官方刷机包可以下载)
2024年8月11日 09:55
华为荣耀v8型号(荣耀V8有几个版本 荣耀V8各版本区别对比)
2024年7月6日 18:33
努比亚z20手机质量怎么样(努比亚Z20这款手机如何和一加7pro相比呢)
2024年6月6日 21:09
touch钻石(关于钻石1,钻石2,TOUCH2,G4,到底我该选择哪一款)
2024年10月14日 02:45
三星999手机多少钱(三星w999现在多少钱可以买到呢质量怎么样)
2023年12月7日 16:15